枚举iCloud Drive目录

时间:2018-11-14 13:55:01

标签: ios icloud uidocumentpickerviewcontroller

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

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

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

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

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

我觉得NSMetaDataQuerys将是我最好的选择,但是他们似乎不喜欢将文档选择器提供给我的URL用作“查询范围”。 (查询开始,但是永远不会更新或结束)

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

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

1 个答案:

答案 0 :(得分:1)

我能够使用NSMetadataQuery使其正常工作。

let url = ... // URL retrieved using UIDocumentPickerViewController
let query = NSMetadataQuery()
query.searchScopes = [NSMetadataQueryAccessibleUbiquitousExternalDocumentsScope, url]
query.predicate = NSPredicate(format: "%K like '*'", NSMetadataItemFSNameKey)