2011-09-28 51 views

回答

4

没有快速的方法:您必须递归地请求目录层次结构中每个文件的大小。

不要忘了处理特殊情况:

  • 文件(或目录时间机器卷上)与多个硬链接:只有一次计数。
  • 特殊文件,如在/dev中发现的内容,但可以在任何地方创建。
  • 符号链接:不要关注他们,但请指明他们的大小。

根据您的需要,您还必须在文件内容大小或磁盘上的文件大小之间进行选择。

2

枚举文件夹内的所有目录。 “文件夹大小将=该文件夹中所有文件大小的总和。”

一些选项:

  1. 编程方式做同样的,我建议用readdir_r执行opendir到enumarate所有文件 - 根据其CPU和内存上。
  2. 您可以使用shell运行du命令。

还有其他的选择......它取决于你想怎么做。

+0

在不同版本的MAC OSX上du有不同的行为吗? –

+0

我从来没有发现任何区别......即使您发现任何可以从开放源代码构建du的敬意,并随身携带您的应用程序以用于所有操作系统 –