从cocoa应用程序我需要将文件移动到垃圾箱,使用NSWorkspaceRecycleOperation这很简单,但垃圾箱上的文件无法恢复到原来的位置。
恢复似乎仅适用于Finder。
我需要使用标准API并在Snow Leopard 10.6.x或更高版本上运行的解决方案
答案 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相同的方式将指定的网址移至垃圾箱。”
祝你好运, 斯蒂芬。