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

How to find all files in subdirectories with NSMetadataQuery?

我试图在 macOS 上查看以我的文档包捆绑包开头的所有子目录,但我只能让 NSMetadataQuery 报告用于范围的直接目录中的文件。它不进行递归搜索。

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

这是我唯一可以开始工作的东西:

_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 上的任意文件夹上时,return什么也没有:

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

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

谢谢!

已解决:

How to receive notifications when files added to document package?