我需要计算目录的物理大小。这样做的朴素算法可能是:
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;
}但是如何处理符号链接呢?
发布于 2012-02-26 16:50:10
getCanonicalPath()这通常涉及删除多余的名称,如“”。和"..“从路径名解析符号链接(在UNIX平台上)。http://docs.oracle.com/javase/1.4.2/docs/api/java/io/File.html
发布于 2013-10-26 02:01:44
我对计算物理大小的第一个问题- how的解决方案:How can I get the size of a folder on SD card in Android?
下面是如何检测符号链接的解决方案:Java 1.6 - determine symbolic links
发布于 2011-11-22 19:00:53
您最好使用另一个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;
}https://stackoverflow.com/questions/8225614
复制相似问题