2014-04-29 22 views
0

我需要找出所有文件和文件夹,其名称的搜索字符串作为它们的前缀在当前目录中,也在其子目录中。和搜索一样的发现者。 我已经尝试过使用NSFileManager,但它只获取当前目录的结果。 使用NSTask我能够获取当前目录中的文件/文件夹以及子目录中。但问题是我无法在单个搜索中获取文件和文件夹。我只能搜索文件或文件夹,而不是两者同时使用。搜索目录中的所有目录/文件及其子目录中的可可

此外,如果我使用NStask我不能得到输出的某个时间间隔。它在NStask完成时返回结果。我已尝试使用通知NSFileHandleDataAvailableNotification,但它在任务完成时返回数据。

是否有任何其他方式,以便我可以搜索目录和文件。另一个应用程序路径查找器已经完成了。如果有人有这个想法。请帮助我 谢谢

回答

1

有很多方法可以做到这一点。你说你找到了一个方法(不详细)来查找“当前目录”中的项目 - 大概是你提供的一个目录。所以一个明显的解决方案肯定会使用它,并且对于它返回的每个项目,它是递归扫描该目录的目录?

如果您想要一次性使用所有项目,您可以使用subpathsOfDirectoryAtPath:error:,您可以使用由enumeratorAtURL:includingPropertiesForKeys:options:errorHandler:返回的枚举器和其他方式一次获得一个项目。再次阅读NSFileManager文档。

HTH

+0

是的递归是一个选项来做到这一点。但在递归的情况下,如果我在根目录中搜索文件,则需要花费太多时间来扫描根目录并返回具有搜索关键字的文件。 – Surjeet

+0

如果您关心速度,可以查看元数据搜索 - Spotlight如何工作。请参阅[文件元数据编程指南](https://developer.apple.com/library/mac/documentation/carbon/conceptual/spotlightquery/Concepts/Introduction.html) – CRD

相关问题