在iOS中遍历目录而不递归

时间:2013-04-02 09:54:10

标签: ios algorithm tree-traversal

我需要遍历应用程序从共享服务器访问的目录的文件夹结构中的所有文件。通过包含静态库,我能够访问各种服务器以及它们中共享的文件。所有服务器的列表都存储在NSArray

我需要遍历服务器共享的所有文件夹,以将所有文件存储在容器中。我已经使用了递归,但是在文件夹和子文件夹数量增加的情况下,这会对性能产生巨大影响。

任何人都可以建议任何算法或逻辑来遍历目录结构。

请参考下图,了解结构。

enter image description here

其中一种可能是线程的使用,但如何划分逻辑以迭代文件的所有文件夹,以便线程可以并行处理它们。

作为一款移动应用,我没有奢侈的记忆。

1 个答案:

答案 0 :(得分:0)

备注:“我没有奢侈的记忆。” - 问一个在70年代工作过的工程师。他会说你iPhone上的1GB内存已经足够了。

重点:您确定确实是递归本身对性能有如此大的影响吗?当然,有一些算法用于遍历树数据结构(例如文件系统中的目录)而不使用显式堆栈进行递归,但真的很痛苦。

相反,请确保您仅获取必要信息,以便不要获取所有属性和硬链接计数以及生日和......以及...你所需要的只是它的完整路径。