一尘不染

Java获取文件夹或文件的大小

java

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


阅读 789

收藏
2020-03-09

共1个答案

一尘不染

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;
}

警告:此方法不足以用于生产。directory.listFiles()可能返回null并导致NullPointerException。另外,它不考虑符号链接,并且可能具有其他故障模式。

2020-03-09