2011-09-28 72 views

回答

4

沒有快速的方法:您必須遞歸地請求目錄層次結構中每個文件的大小。

不要忘了處理特殊情況:

  • 文件(或目錄時間機器捲上)與多個硬鏈接:只有一次計數。
  • 特殊文件,如在/dev中發現的內容,但可以在任何地方創建。
  • 符號鏈接:不要關注他們,但請指明他們的大小。

根據您的需要,您還必須在文件內容大小或磁盤上的文件大小之間進行選擇。

2

枚舉文件夾內的所有目錄。 「文件夾大小將=該文件夾中所有文件大小的總和。」

一些選項:

  1. 編程方式做同樣的,我建議用readdir_r執行opendir到enumarate所有文件 - 根據其CPU和內存上。
  2. 您可以使用shell運行du命令。

還有其他的選擇......它取決於你想怎麼做。

+0

在不同版本的MAC OSX上du有不同的行爲嗎? –

+0

我從來沒有發現任何區別......即使您發現任何可以從開放源代碼構建du的敬意,並隨身攜帶您的應用程序以用於所有操作系統 –