问题描述
我正在用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 (将#修改为@)