1

我想枚举用户在 UIDocumentPickerViewController 中选择的目录中的文件。

我得到从文档选择器返回的目录 URL。我调用 startAccessingSecurityScopedResource 创建一个 NSFileCoordinator 实例并开始协调读取目录。在我的读取处理程序中,我尝试使用 FileManager 获取目录的内容。

我看到目录中有一堆 blah.png.icloud 文件。这是有道理的,因为我在我的 iCloud 驱动器中选择一个目录。

枚举该目录内容的正确方法是什么?我需要列举两件事:图像元数据图像数据

我是否只需要触发所有 .icloud 文件的下载才能读取其图像元数据?

我觉得 NSMetaDataQuerys 是我最好的选择,但他们似乎不喜欢使用文档选择器提供给我的 URL 作为“查询范围”。(查询开始,但从不更新或完成)

有人知道这方面的任何好资源吗?我看到很多关于使用 NSMetaDataQueries 读取无处不在的目录的内容,但没有看到用户通过文档选择器选择的目录位置。

额外问题:我是否需要启动“.icloud”文件的完整文件下载才能读取它们的图像元数据?(图像宽度和高度)

4

1 回答 1

2

我能够使用 NSMetadataQuery 让它工作。

let url = ... // URL retrieved using UIDocumentPickerViewController
let query = NSMetadataQuery()
query.searchScopes = [NSMetadataQueryAccessibleUbiquitousExternalDocumentsScope, url]
query.predicate = NSPredicate(format: "%K like '*'", NSMetadataItemFSNameKey)
于 2020-08-16T05:07:14.967 回答