我正在编写一个将删除文件的应用程序。如果该卷支持“垃圾箱”文件夹,我想将文件移动到那里,否则只需删除它们。
这可能只是我的搜索魔力让我失败,但我找不到如何做到这一点。
这里的目的是做类似的事情(伪代码):
if (itemURL on volume that supports Trash)
use trashItemAtURL:resultingItemURL:error:
else
use removeItemAtURL:error:
我知道recycleURLs:completionHandler:但是,例如对于 SMB 卷,它会弹出一个对话框,说明如何立即删除文件。我想单独处理这些文件,以便我可以更新显示。我想我可以用recycleURLs:completionHandler:文件系统事件是否适用于 SMB 卷,但我不确定是否有效。
Anyhoo..是否有一些我缺少的 API 或者一些我似乎找不到的推荐技术?
苹果开发论坛的一位好心人找到了答案:
来自 10.8 Foundation 发行说明: https://developer.apple.com/library/mac/releasenotes/Cocoa/Foundation.html
NSFileManager 垃圾 API 在 Mac OS 10.8 中,NSFileManager 有新方法
管理垃圾箱。 -[NSFileManager
rashItemAtURL:resultingItemURL:error:] 将尝试移动该项目
在给定的 URL 到垃圾箱,返回结果 URL
参考。作为此操作的一部分,系统可能会重命名该文件
避免名称冲突;如果是这样,resultingItemURL 将反映这一点
新名字。
[snip]
某些卷可能不支持垃圾文件夹,因此这些方法将
通过返回 NO 或 nil 和 NSError 来报告失败
NSFeatureUnsupportedError。 NSFeatureUnsupportedError 是一个新错误
NSCocoaErrorDomain 中的代码表示执行失败
请求的操作,因为该功能也不支持
因为文件系统缺少该功能,或者所需的库没有
失踪或其他类似原因。
不知道为什么该文档从未出现在搜索中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)