2014-04-29 175 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

相關問題