java简单小程序2-用递归计算文件夹中文件的大小,并转换成kb,MB为单位

用递归计算文件夹中文件的大小,并转换成kb,MB为单位
代码如下:

public class Test {
	
	public static void main(String[] args) {
		System.out.println("请输入文件/文件夹路径:");
		String s = new Scanner(System.in).nextLine();
		File files = new File(s);
		if(! files.isDirectory()) {
			System.out.println("文件路径错误");
			return ;
		}
		long size= getdirLength(files);
		System.out.println("结果如下:");
		System.out.println(size+"字节");
		String a = getSize(size);
		System.out.println(a);
	}

	private static String getSize(long size) {
		if(size < 1024) {
			// String.valueOf() 把数字变成字符串
			return String.valueOf(size)+"B";
		}else {
			size = size / 1024;
		}
		if(size < 1024) {
			return String.valueOf(size)+"kb";
		}else {
			size = size / 1024;
		}
		if(size < 1024) {
			size = size * 100;
			return String.valueOf((size/100))+"."
					+ String.valueOf((size%100)) + "MB";
		}else {
			size = size*100 / 1024;
			return String.valueOf((size / 100)) + "."
					+ String.valueOf((size % 100)) + "GB";
		}
	}

	private static long getdirLength(File files) {
		File[] file = files.listFiles();
		if(file == null) {
			return 0;
		}
		long num = 0;
		for(File f : file) {
			if(f.isFile()) {
				num += f.length();
			}else {
				num += getdirLength(f);
			}
		}
		return num;
	}
}

Console:
在这里插入图片描述

发布了9 篇原创文章 · 获赞 2 · 访问量 300

猜你喜欢

转载自blog.csdn.net/weixin_44941564/article/details/104527126