2012-03-25 16 views
1

假設您有多個目錄都存在於同一個分區上。假設您想要查找每個目錄中所有內容的總字節數,那麼最好的方法是什麼?查看Java文件和Apache FileUtils我只能獲取有關分區的磁盤使用情況信息,但我需要的是可以將其限制在指定的目錄。Java 1.6,如何獲取指定目錄中的所有內容使用的總字節數

Example: 

    Partition X: 100GB 

    Root directories: 

    /x/1/ 
    /x/2/ 
    /x/3/ 

Deeper directories can exist under each root directory: 

/x/1/files/a/deeper/path/test.txt 
    /x/2/files/test.txt 
    /x/3/files/path/to/files/test.txt 

Goal: 

long byteSumForX1 = ?? 

假設上面的3個路徑存在於分區x下,我希望能夠找到上面指定的每個根目錄使用的總字節數。總數需要遞歸併包含根目錄下的所有文件和目錄

任何想法?我寧願利用一些現有的庫(如果存在的話)(假設/希望它存在)

+0

大多數工具只能給你的文件的長度,不是實際使用的大小。例如,一個1字節的文件可以使用512B或4KB的磁盤空間。名稱較長的文件可以使用更多磁盤空間(具體取決於文件系統類型)。如果您有一個稀疏文件,其長度可能會比實際使用的大小多很多倍(可能是1000倍)。 – 2012-03-26 07:58:24

回答

3

最簡單的解決方案是使用FileUtils類Apache Commons中的sizeOfDirectory()方法。引用javadoc:

遞歸計算一個目錄的大小(所有文件的長度之和)。

參數:目錄 - 目錄進行檢查,不能爲空

返回:以字節爲單位的目錄的大小,0,如果目錄是安全限制

+1

正是我在找什麼,謝謝! – Hoofamon 2012-03-25 19:59:58

相關問題