我想使用Files.app
复制文件夹(例如从Dropbox或iCloud),然后切换到我的应用程序并阅读此文件夹的内容以进行进一步处理。我找不到从UIPasteboard
获取实际数据的方法。在loadObject
上拨打NSItemProvider
会给我一个NSData
存档,我可以取消存档,然后获得一个(私有)FPItem
,它会实现<NSFileProviderItem>
,但现在?我怎样才能真正请求下载此项指向的实际文件夹?
答案 0 :(得分:0)
据我了解,您想从Dropbox下载文件夹。您可能需要考虑使用带有URLSession.shared.datatask(...)
请求的let fileManager = FileManager.default
let directoryURL = fileManager.urls(for: .documentDirectory, in: .userDomainMask)[0]
let destURL = directoryURL.appendingPathComponent("myTestFile")
Dropbox API。如果您不想处理实施细节,可以使用像 SwiftyDropbox 这样的库。没有必要使用 UIPasteboard ,因为您的最终目标是将文件夹下载到您的应用。如果您要将所述文件夹保存到 Files app ,则可以在下载/处理该文件夹后执行此操作。
以下是一些有用的链接:
在链接2中,下面的代码片段获取了保存文件的目录。获得整个文件夹的一种方法是(1)在Documents目录中创建一个新文件夹,如Dropbox API HTTP (RESTful Requests)和( 2)遍历Dropbox文件夹中的每个项目,并将其添加到新创建的文件夹中。
RunTask
要实现(1),您需要获取文件夹中的所有文件,您可以使用此this API端点执行此操作。然后,为了实现(2),你将遍历所有给定的文件,像/list_folder一样下载它们。
如果我的回答有所帮助,或者您是否需要进一步澄清,请告诉我。谢谢你! :)
答案 1 :(得分:0)
我使用了一个宝贵的技术支持事件(TSI)让Apple工程师发表声明。
结果是,在这个时间点,不支持将Files.app
中的文件夹复制到您自己的应用中。如果要导入文件夹,请使用UIDocumentPickerViewController
。