我正在使用cocoa开发一个应用程序。我需要搜索selectyed文件夹中的所有歌曲。我使用过 “subpathsAtPath”获取所选文件夹中的所有组件。如果用户选择像/User/Music.But这样的特定文件夹,如果用户选择像“/”这样的根目录,那么这种方法很好。然后这个方法挂起。有什么方法可以解决这个问题。 在此先感谢.....
答案 0 :(得分:2)
正如肯特所说,这种方法不太可能会挂起,它只需要很长时间来执行并阻止线程中的进一步执行,直到它返回。
考虑使用enumeratorAtPath:
。它使用NSDirectoryEnumerator并一次为您提供一个目录。这将消除创建一个非常大的阵列的需要,这在内存方面是昂贵的。我还可以更轻松地将你的工作分解成块(NSOperations?),这样你就可以把它推到另一个线程,这可能是一个好主意,考虑到完成所需的时间。 NSDirectoryEnumerator还可以控制枚举,即可以调用-skipDescendents
[sic]来修剪枚举树。