我们知道,当File对象代表一个文件时,通过length()方法可以获取文件的大小(以字节为单位)。若要获取目录(文件夹)的大小,可以遍历目录中所有文件,然后将每个文件的大小相加,相加之和即为文件夹大小。
实现代码如下:
//定义成员变量,用于累加文件大小
long size = 0;
//统计目录大小的方法
public void getDirSize(File file) {
if(file.isFile()) {
//如果是文件,获取文件大小累加
size += file.length();
}else if(file.isDirectory()) {
//获取目录中的文件及子目录信息
File[] f1 = file.listFiles();
for(int i = 0; i < f1.length(); i++) {
//调用递归遍历f1数组中的每一个对象
getDirSize(f1[i]);
}
}
}
注:如果要以K为单位,可以使用“size%1024==0?(size/1024):(size/1024+1)”公式计算。