如何解决看门狗on_deleted事件处理程序始终将事件标记为文件,即使删除目录也是如此
我正在用python创建一个看门狗,当我删除一个文件夹时,它将其记录为文件删除而不是目录删除。我已经从代码中发布了完整的工作成果。我唯一的问题是event.is_directory
总是返回false
。
filesystem.py
import sys
import time
import logging
import tkinter as tk
from tkinter import filedialog
from watchdog.observers import Observer
from watchdog.events import LoggingEventHandler,FileSystemEventHandler
class OnMyWatch:
def __init__(self,watch_src,watch_dest):
self.observer = Observer()
self.watch_src = watch_src
self.watch_dest = watch_dest
def run(self):
event_handler = Handler()
self.observer.schedule(event_handler,recursive = True)
self.observer.start()
try:
while True:
time.sleep(5)
except:
self.observer.stop()
print("Observer Stopped")
self.observer.join()
class Handler(FileSystemEventHandler):
def on_deleted(self,event):
if event.is_directory:
print("Watchdog has registered a deleted directory event")
else:
print("Watchdog has registered a deleted file event")
if __name__ == "__main__":
root = tk.Tk()
root.withdraw()
watch_src = filedialog.askdirectory()
watch_dest = filedialog.askdirectory()
watch = OnMyWatch(watch_src,watch_dest)
watch.run()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。