枚举 iCloud Drive 目录
Posted
技术标签:
【中文标题】枚举 iCloud Drive 目录【英文标题】:Enumerating an iCloud Drive directory 【发布时间】:2018-11-14 13:55:01 【问题描述】:我想枚举用户在 UIDocumentPickerViewController 中选择的目录中的文件。
我得到了从文档选择器返回的目录 URL。 我调用 startAccessingSecurityScopedResource 我创建了一个 NSFileCoordinator 实例并开始协调读取目录。在我的读取处理程序中,我尝试使用 FileManager 获取目录的内容。
我看到目录中有一堆 blah.png.icloud 文件。这是有道理的,因为我在我的 iCloud 驱动器中选择一个目录。
枚举该目录内容的正确方法是什么?我需要列举两件事: 图像元数据 图像数据
我是否只需要触发所有 .icloud 文件的下载才能读取其图像元数据?
我觉得 NSMetaDataQuerys 是我最好的选择,但他们似乎不喜欢使用文档选择器提供给我的 URL 作为“查询范围”。 (查询开始,但从未更新或完成)
有人知道这方面的好资源吗?我看到很多关于使用 NSMetaDataQueries 读取无处不在的目录的内容,但没有看到用户通过文档选择器选择的目录位置。
奖金问题: 我是否需要启动“.icloud”文件的完整文件下载才能读取它们的图像元数据? (图像宽度和高度)
【问题讨论】:
【参考方案1】:我能够使用 NSMetadataQuery 使其工作。
let url = ... // URL retrieved using UIDocumentPickerViewController
let query = NSMetadataQuery()
query.searchScopes = [NSMetadataQueryAccessibleUbiquitousExternalDocumentsScope, url]
query.predicate = NSPredicate(format: "%K like '*'", NSMetadataItemFSNameKey)
【讨论】:
我可以确认以上工作完美!以上是关于枚举 iCloud Drive 目录的主要内容,如果未能解决你的问题,请参考以下文章
markdown iCloud Drive和iCloud备份有什么区别?
是否需要为 iCloud Drive 更新 iOS 7 iCloud 应用程序?
React Native App 中的 iCloud 和 Google Drive 集成