我在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
报告该事件)。
这里有什么问题吗?我该如何解决?
非常感谢你!
答案 0 :(得分:1)
这是因为当您“将文件拖到垃圾箱”或在文件管理器中单击“删除”时,您实际上只是将文件移动到.Trash文件夹,而不是删除它。检测这些讨论时遇到一些困难:https://github.com/gorakhargosh/watchdog/issues/46