获取目录大小的java方法返回不同的结果
我正在尝试获取Android上文件夹的大小。问题是:
- 每次函数返回不同的内容时李>
- 它不会扫描所有文件李>
有人能告诉我为什么吗
private long dirSize(File dir) {
long result = 0;
File[] fileList = dir.listFiles();
for(int i = 0; i < fileList.length; i++) {
// Recursive call if it's a directory
if(fileList[i].isDirectory()) {
result += dirSize(fileList [i]);
} else {
// Sum the file size in bytes
result += fileList[i].length();
}
}
return result/1024/1024; // return the file size
}
我从另一个线程得到这个函数。如何改进此代码
# 1 楼答案
在最后摆脱分裂。每个子文件夹将四舍五入到最接近的MB,并以字节为单位添加到当前文件夹的大小。返回字节并处理调用者中的转换