有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

获取目录大小的java方法返回不同的结果

我正在尝试获取Android上文件夹的大小。问题是:

  1. 每次函数返回不同的内容时
  2. 它不会扫描所有文件

有人能告诉我为什么吗

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) 个答案

  1. # 1 楼答案

    在最后摆脱分裂。每个子文件夹将四舍五入到最接近的MB,并以字节为单位添加到当前文件夹的大小。返回字节并处理调用者中的转换