android目录大小

时间:2011-11-22 10:53:46

标签: android file

我需要计算目录的物理大小。这样做的天真算法可能是:

public static long getFolderSize(File dir) {
long size = 0;
for (File file : dir.listFiles()) {
    if (file.isFile()) {
        System.out.println(file.getName() + " " + file.length());
        size += file.length();
    }
    else
        size += getFolderSize(file);
}
return size;
}

但如何处理符号链接?

3 个答案:

答案 0 :(得分:1)

getCanonicalPath() 这通常涉及删除冗余名称,例如“。”和路径名中的“..”,解析符号链接(在UNIX平台上)。 http://docs.oracle.com/javase/1.4.2/docs/api/java/io/File.html

答案 1 :(得分:0)

我对第一个问题的解决方案 - 如何计算物理尺寸: How can I get the size of a folder on SD card in Android?

以下是如何检测符号链接的解决方案: Java 1.6 - determine symbolic links

答案 2 :(得分:-1)

您最好使用其他API来获取与此相关的API的文件大小

public static long getFolderSize(File dir) {
long size = 0;
for (File file : dir.listFiles()) {
    if (file.isFile()) {
        System.out.println(file.getName() + " " + file.getTotalSpace());
        size += file.getTotalSpace();
    }
    else
        size += getFolderSize(file);
}
return size;
}