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