有啥方法可以通过 iCloud Drive 支持最近删除的文件?

Posted

技术标签:

【中文标题】有啥方法可以通过 iCloud Drive 支持最近删除的文件?【英文标题】:Any way to support recently deleted files with iCloud Drive?有什么方法可以通过 iCloud Drive 支持最近删除的文件? 【发布时间】:2018-03-23 07:46:57 【问题描述】:

简述:如何将被我的应用用户删除的文档放入 iCloud Drive 存储空间中最近删除的部分?

详细版本:当您使用“文件”应用或 iCloud.com 从 iCloud Drive 中删除文档时,它们会被添加到最近删除的 30 天内,用户可以在此恢复所述文档.我想在我自己的应用中复制这种行为,但它们会被永久删除。

有关 iCloud 文件管理的 Apple 指南,特别是处理删除文档 (here),声明使用 FileManager 方法(removeItemAtPath:removeItemAtURL:),但还特别声明它们将被永久删除。

这是我目前使用的方法,在用户问我如何恢复他们错误删除的文件之前,我什至没有意识到恢复已删除文件的能力。

无数的搜索词出现了关于如何恢复文件的结果,但没有关于如何实现它,或者它是否可以完成......所以我在这里。

如果一切都失败了:我想到的一种可能的解决方案是创建我自己的“已删除项目”目录,其中项目在被清除之前被移动一段时间。但是,如果有一种方法可以访问内置功能,显然这将更加用户友好且易于实现。

【问题讨论】:

“这是我目前正在使用的方法” - 它在哪里,您可以将其添加到您的问题中吗? @Koen 抱歉,我指的是我提到并链接到的方法... removeItemAtURL: 和 removeItemAtPath: 【参考方案1】:

我自己没有尝试过,但从您链接的文档看来,您可能正在寻找the ability to trash items。我相信这会将项目放入 iCloud 的 Recently Deleted 部分,但这就是我个人不尝试这样做的地方,这限制了我在这里的知识,但从文档来看,这似乎是您正在寻找的东西,因为您获得了该项目的新 URL(在垃圾),如果您需要恢复该项目,这很方便。

以防万一链接因某种原因失效,我建议的方法是:

- (BOOL)trashItemAtURL:(NSURL *)url 
      resultingItemURL:(NSURL * _Nullable *)outResultingURL 
                 error:(NSError * _Nullable *)error;

这是一个NSFileManager 实例方法。希望这会有所帮助!

【讨论】:

以上是关于有啥方法可以通过 iCloud Drive 支持最近删除的文件?的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 8 中将应用程序的无处不在的容器暴露给 iCloud Drive

markdown iCloud Drive和iCloud备份有什么区别?

为 iOS 应用程序的文件启用 iCloud Drive 文件夹

iOS 的 8 iCloud Drive 是不是允许不同的用户共享文件?

是否需要为 iCloud Drive 更新 iOS 7 iCloud 应用程序?

删除 iCloud Drive 文件时删除本地文件