如何使用 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 == *" 但这会引发异常。
谢谢!
我试图在 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 == *" 但这会引发异常。
谢谢!