看门狗无法在ubuntu中检测到删除事件

时间:2014-04-20 03:05:10

标签: python ubuntu filesystems watchdog

我在python中编写类似软件的Dropbox。我正在使用watchdog来监控文件系统:

class MyHandler(FileSystemEventHandler):
    def on_created(self, event):
        create_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        print create_time, event.event_type, event.src_path

    def on_deleted(self, event):
        delete_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        print delete_time, event.event_type, event.src_path

    def on_modified(self, event):
        modify_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        print modify_time, event.event_type, event.src_path

    def on_moved(self, event):
        move_time = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
        print move_time, "moved from", event.src_path, "to", event.dest_path

此代码在我的Mac上运行正常(各种事件)但无法在ubuntu中检测到删除事件。但是,如果我执行rm而不是将文件拖到废纸篓,它可以正常工作(watchdog报告该事件)。
这里有什么问题吗?我该如何解决?
非常感谢你!

1 个答案:

答案 0 :(得分:1)

这是因为当您“将文件拖到垃圾箱”或在文件管理器中单击“删除”时,您实际上只是将文件移动到.Trash文件夹,而不是删除它。检测这些讨论时遇到一些困难:https://github.com/gorakhargosh/watchdog/issues/46