25 lines
762 B
Python
25 lines
762 B
Python
import time
|
|
from watchdog.observers import Observer
|
|
from watchdog.events import FileSystemEventHandler
|
|
from pathlib import Path
|
|
|
|
|
|
class FileChangeHandler(FileSystemEventHandler):
|
|
def __init__(self, callback=None):
|
|
self.callback = callback
|
|
|
|
def on_modified(self, event):
|
|
if not event.is_directory:
|
|
if self.callback:
|
|
self.callback(event.src_path)
|
|
print(f"[Watcher] Datei geändert: {event.src_path}")
|
|
|
|
|
|
def start_watcher(path: Path, callback=None):
|
|
"""Startet den File-Watcher in einem Hintergrundthread."""
|
|
event_handler = FileChangeHandler(callback=callback)
|
|
observer = Observer()
|
|
observer.schedule(event_handler, str(path), recursive=True)
|
|
observer.start()
|
|
|
|
return observer |