如何获取文件夹或文件的大小?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (16)

如何在Java中检索文件夹或文件的大小?

提问于
用户回答回答于
java.io.File file = new java.io.File("myfile.txt");
file.length();

这将返回文件的长度(以字节为单位)或0文件不存在。没有内置的方法来获取文件夹的大小,你将不得不递归地使用目录树(使用listFiles()表示目录的文件对象的方法)并为自己积累目录大小:

public static long folderSize(File directory) {
    long length = 0;
    for (File file : directory.listFiles()) {
        if (file.isFile())
            length += file.length();
        else
            length += folderSize(file);
    }
    return length;
}

用户回答回答于

你需要FileUtils#sizeOfDirectory(File)commons-io

请注意,你需要手动检查该文件是否为目录,因为如果将非目录传递给该目录,该方法会引发异常。

警告:这个方法(从commons-io 2.4开始)有一个bug,IllegalArgumentException如果目录被同时修改,可能会抛出。

扫码关注云+社区