2011-11-22 75 views
6

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

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

但如何处理符号链接?

+2

符号链接是什么意思? – user370305

回答

-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

+0

+符号链接可以创建循环引用。 – user954469