统计文件夹的大小

/*
* 计算文件夹的大小
*/
public static void main(String[] args) {

File dir = getDir();
float length = getDirLength(dir);
if (length == 0) {
System.out.println("此文件夹为空.");
} else if (length < 1024) {
System.out.println(length + " byte");
} else if (length < 1024 * 1024) {
System.out.println(length / 1024 + " kb");
} else if (length < 1024 * 1024 * 1024) {
System.out.println(length / (1024 * 1024) + " mb");
} else {
System.out.println(length / (1024 * 1024 * 1024) + " Gb");
}
}

public static float getDirLength(File dir) {
long length = 0;
File[] subFiles = dir.listFiles();
for (File subFile : subFiles) {
if (subFile.isFile()) {
length += subFile.length();
} else {
length += getDirLength(subFile);
}
}
return length;
}
public static File getDir() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入文件夹路径:");
while (true) {
String pathname = sc.nextLine();
File dir = new File(pathname);
if (!dir.exists()) {
System.out.println("您输入的路径不存在,请重新输入.");
} else if (dir.isFile()) {
System.out.println("您输入的是一个文件路径,请输入一个文件夹路径.");
} else {
return dir;
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值