Objective C 中的目录大小
Posted
技术标签:
【中文标题】Objective C 中的目录大小【英文标题】:Directory Size in Objective C 【发布时间】:2011-09-28 06:57:08 【问题描述】:由于 NSFileManager 没有返回目录大小的能力,那么获取目录大小的合适且快速的方法是什么?
【问题讨论】:
【参考方案1】:没有快速的方法:您必须递归地请求目录层次结构中每个文件的大小。
别忘了处理特殊情况:
具有多个硬链接的文件(或 Time Machine 卷上的目录):只计算一次。 特殊文件,例如在/dev
中找到的文件,但可以在任何地方创建。
符号链接:不要关注它们,而是计算它们的大小。
根据您的需要,您还必须在文件内容大小或磁盘上文件大小之间进行选择。
【讨论】:
【参考方案2】:枚举文件夹内的所有目录。 “文件夹大小将=该文件夹中所有文件大小的总和。”
一些选项:
-
以编程方式执行相同操作,我建议使用 opendir 和 readdir_r 枚举所有文件 - 基于其 CPU 和内存。
您可以使用 shell 运行 du 命令。
还有其他选择……这取决于你想怎么做。
【讨论】:
在不同版本的 MAC OSX 上是否有不同的行为? 我从来没有发现任何区别......即使您发现任何尊重,您也可以从开源构建 du 并将其保存在您的应用程序中以在所有操作系统中使用以上是关于Objective C 中的目录大小的主要内容,如果未能解决你的问题,请参考以下文章