是否可以以编程方式恢复放入垃圾箱的项目?我希望在我的应用程序中有一个“移至垃圾箱”按钮,但我希望能够在不保留自己的副本的情况下撤消它。能够撤消移至垃圾箱是不合适的,还是应该是永久性操作?
上次我检查时,“放回”功能完全是 Finder 特有的。也就是说,以编程方式将文件移至垃圾箱甚至不允许 Finder 将其放回原处。Finder 只能放回被 Finder 丢弃的物品。(即使将项目从 Dock 上的文件夹拖到垃圾箱也不允许将其放回原处,因为 Dock 将它扔掉了,而不是 Finder。)
即使对于 Finder 可以放回的项目,也没有以编程方式执行“放回”操作的记录方法。
但是,对于您自己的应用程序,您当然可以在不保留文件的单独副本的情况下撤消操作(直到用户清空垃圾箱)。-[NSWorkspace recycleURLs:completionHandler:]
将为您提供垃圾箱中项目的 URL。存储这些 URL 的书签数据和原始包含文件夹,以及原始名称。要撤消,请解析垃圾箱中项目的书签数据和原始包含文件夹,并将前者移动到具有原始名称的后者 - 除非确保不要破坏在其位置创建的任何新文件。如果不破坏就无法完成移动,请尝试在文件名中添加后缀编号。继续递增,直到找到未使用的名称。
如果书签数据解析失败,则操作无法完成,您应该让用户知道。
归档时间: |
|
查看次数: |
1021 次 |
最近记录: |