我的应用程序将一些文件放入垃圾箱,但也实现了撤消以将它们再次拉出。我需要知道用户是否清空了垃圾箱,以便我可以清空我的撤消堆栈。
我是否需要监视文件系统事件来实现这一点,还是有更简单的方法?
我的应用程序将一些文件放入垃圾箱,但也实现了撤消以将它们再次拉出。我需要知道用户是否清空了垃圾箱,以便我可以清空我的撤消堆栈。
我是否需要监视文件系统事件来实现这一点,还是有更简单的方法?
您可能最终不得不观看 ~/.Trash,但是当垃圾清空时会发布通知。它的名字是"com.apple.carbon.core.DirectoryNotification"
(其他时间也发过),但是userInfo里面好像什么都没有。但是,它确实有一个字符串作为对象,因此它可能包含一些相关信息。我的快速测试似乎表明它没有。(它看起来像一个类似于 的字符串"FNObject 555279-101"
)
您可以使用UKKQueue来查看文件更改(空 thrash)通知:
http ://www.cocoadev.com/index.pl?UKKQueue
另一种选择是使用FNSubscribe
or FNSubscribeByPath
。该通知不会告诉您到底发生了什么,只是告诉您订阅的目录发生了一些事情。