使用NSWorkspace将文件移动到废纸篓不允许还原

时间:2011-01-18 06:58:49

标签: cocoa

从cocoa应用程序我需要将文件移动到垃圾箱,使用NSWorkspaceRecycleOperation这很简单,但垃圾箱上的文件无法恢复到原来的位置。

恢复似乎仅适用于Finder。

我需要使用标准API并在Snow Leopard 10.6.x或更高版本上运行的解决方案

3 个答案:

答案 0 :(得分:4)

在10.8+ NSFileManager trashItemAtURL:resultingItemURL:error:中使用“放回”选项将文件移至废纸篓(它还会同步移动文件并且不会发出声音)。

旧系统没有好的方法,但您可以使用新方法,并为旧系统提供后备支持:

[[NSFileManager defaultManager] 
          respondsToSelector:@selector(trashItemAtURL:resultingItemURL:error:)]

答案 1 :(得分:2)

我刚才发现如果我将一个有效的NSURL **而不是nil作为NSFileManager trashItemAtURL:resulItemURL:error:的resulItemURL:参数传递给我,那么我可以从垃圾箱中放回文件。即使之后我没有对resulItemURL做任何事情。

答案 2 :(得分:0)

没有测试它,但也许这种方法可以做到:

recycleURLs:completionHandler:

至少documentation表示“以与Finder相同的方式将指定的网址移至垃圾箱。”

祝你好运, 斯蒂芬。