如何使用NSMetadataQuery查找子目录中的所有文件?

时间:2017-09-12 22:46:01

标签: ios macos icloud

我正在尝试在macOS上查看以我的文档包bundle开头的所有子目录,但是我只能让NSMetadataQuery报告用于作用域的直接目录中的文件。它不进行递归搜索。

我正在尝试查看我的文件包(NSFileWrapper *)中包含的文件列表及其下载状态,该文件包存储在iCloud Drive(或本地FS的任何位置)上,但我只能获取NSMetadataQuery来返回文件直接在作为范围传递的目录中。它没有进行递归搜索。

这是我唯一可以工作的事情:

_query = [[NSMetadataQuery alloc] init];
NSString *root = [_DocRoot path];
[_query setSearchScopes:[NSArray arrayWithObject:root]]; // /Users/patrick/MyFDPackageBundles
[_query setPredicate:[NSPredicate predicateWithFormat:@"%K LIKE '*.fd'", NSMetadataItemFSNameKey]];

当搜索范围是iCloud容器时,以下正确列出macOS和iOS上子目录中的文件,但在MacOS上的任意文件夹上运行时,不返回任何内容:

[NSPredicate predicateWithFormat:@"%K LIKE '*'", NSMetadataItemFSNameKey]

有谁知道如何查询文件系统上文件夹中的所有文件?苹果文档说要使用" NSMetadataItemFSNameKey == *"但这引发了异常。

谢谢!

1 个答案:

答案 0 :(得分:0)