安卓目录大小

8

我需要计算一个目录的物理大小。实现此操作的简单算法可能如下:

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个回答

1

0

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

2
文档中说明了getTotalSpace()方法:“返回包含此路径的分区的总大小(以字节为单位)。”->它不返回文件大小。+该方法仅适用于API级别9(我必须在1.6上运行)。 - user954469
符号链接可以创建循环引用。 - user954469

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接