Verzeichnisse überwachen: Der File-System-Watcher spart Zeit

Um Änderungen in einem Dateisystem zu überwachen, bietet sich der File-System-Watcher an. Warum? Weil er pro Überwachter Datei mindestens zehn Sekunden einspart. Ein Importsystem, das Daten aus Textdateien in eine Datenbank übernimmt, ist ein gutes Beispiel, um die Arbeit mit dem File-System-Watcher zu erklären, denn ein solches Programm sollte Verzeichnisse stets auf neu erstellte Dateien hin überprüfen. Sobald eine Datei erstellt wurde, muss das Programm diese Datei öffnen, sie parsen und dann die Daten in die Datenbank einfügen. Häufig geschieht das, indem eine Verzeichnisabfrage durchgeführt wird. Dadurch werden alle neuen Dateien aufgezählt, die seit der letzten Abfrage hinzugekommen sind. Das .NET Framework bietet Entwicklern eine Alternative zu dieser ständigen Systemabfrage: das FileSystemWatcher-Objekt.

Das FileSystemWatcher-Objekt übernimmt die Überwachung eines Verzeichnisses. Sobald eine Datei erstellt, aktualisiert oder gelöscht wird, gibt der File-System-Watcher eine Meldung heraus, um den Anwender über eine Veränderung zu informieren. Damit weiß das Programm nahezu sofort nach einer Dateierstellung, dass eine neue Datei zur Verfügung steht. Dank umgehender Benachrichtigung kann das System weitaus effizienter arbeiten. Denn das Verzeichnis muss nicht ständig auf Änderungen hin abgefragt werden. Damit geht zwischen den einzelnen Verzeichnisabfragen keine Zeit verloren.

Grundlagen des File-System-Watcher

Es gibt ein paar grundsätzliche Eigenschaften und Ereignisse, die vor einer Arbeit mit dem File-System-Watcher bekannt sein sollten. Zweifellos ist die wichtigste Eigenschaft des Objekts EnableRaisingEvents. Dieses Merkmal legt fest, ob das Objekt beim Erhalt einer Änderungsmeldung ein Ereignis auslöst. Steht die Eigenschaft EnableRaisingEvents auf „false“, bewirkt das Objekt keine Änderungsereignisse. Bei „true“ werden hingegen Ereignisse ausgelöst. Es folgt eine Liste weiterer wichtiger Eigenschaften und Ereignisse, die im Umgang mit dem File-System-Watcher bekannt sein sollten:

Eigenschaften

  • Path bestimmt, welchen Pfad der File-System-Watcher überwachen soll. Der Eintrag „C:\Temp\“ bedeutet, dass alle Veränderungen in diesem Verzeichnis beobachtet werden.
  • IncludeSubDirectories zeigt an, ob der File-System-Watcher auch Unterverzeichnisse auf Änderungen hin überprüfen soll.
  • Filter ermöglicht es, die Änderungen für gewisse Dateiarten zu filtern. Soll es beispielsweise nur eine Meldung geben, wenn TXT-Dateien verändert, erstellt, oder gelöscht werden, dann lautet der Eintrag „*.txt“. Diese Eigenschaft ist sehr praktisch, wenn die Verzeichnisse sehr groß sind oder in den Verzeichnissen viel Datenverkehr anfällt.

Ereignisse

  • Changed wird ausgelöst, sobald eine Datei in dem überprüften Verzeichnis verändert wird. Dazu ein wichtiger Hinweis: Dieses Ereignis kann auch mehrfach stattfinden, selbst wenn der Inhalt der Datei nur ein einziges Mal geändert wurde. Das liegt daran, dass sich andere Dateieigenschaften beim Speichern der Datei ändern.
  • Created wird ausgeführt, sobald eine Datei in dem überprüften Verzeichnis erstellt wird. Wer dieses Ereignis nutzen will, um eine neu erstellte Datei zu verschieben, muss seinen Event-Handler so programmieren, dass es keine Schwierigkeiten gibt, falls die Datei zeitgleich von einem anderen Prozess verwendet wird. Das liegt daran, dass das Created-Ereignis ausgelöst werden kann, bevor der Prozess, der die Datei erstellt hat, diese freigegeben hat. Daher muss der Code im Vorfeld entsprechend angepasst werden.
  • Deleted wird ausgelöst, sobald eine Datei in dem überprüften Verzeichnis gelöscht wird.
  • Renamed wird aktiviert, wenn eine Datei in dem überprüften Verzeichnis umbenannt wird.

Hinweis: Keines dieser Ereignisse wird ausgelöst, wenn die Eigenschaft EnableRaisingEvents nicht auf „true“ steht. Sollte der File-System-Watcher irgendwann einmal nicht richtig funktionieren, gilt es also, zuerst die EnableRaisingEvents-Eigenschaft zu überprüfen, um sicherzustellen, dass sie durch „true“ aktiviert ist.

Page: 1 2

ZDNet.de Redaktion

Recent Posts

Studie: Ein Drittel aller E-Mails an Unternehmen sind unerwünscht

Der Cybersecurity Report von Hornetsecurity stuft 2,3 Prozent der Inhalte gar als bösartig ein. Die…

3 Tagen ago

HubPhish: Phishing-Kampagne zielt auf europäische Unternehmen

Die Hintermänner haben es auf Zugangsdaten zu Microsoft Azure abgesehen. Die Kampagne ist bis mindestens…

3 Tagen ago

1. Januar 2025: Umstieg auf E-Rechnung im B2B-Geschäftsverkehr

Cloud-Plattform für elektronische Beschaffungsprozesse mit automatisierter Abwicklung elektronischer Rechnungen.

4 Tagen ago

Google schließt schwerwiegende Sicherheitslücken in Chrome 131

Mindestens eine Schwachstelle erlaubt eine Remotecodeausführung. Dem Entdecker zahlt Google eine besonders hohe Belohnung von…

4 Tagen ago

Erreichbarkeit im Weihnachtsurlaub weiterhin hoch

Nur rund die Hälfte schaltet während der Feiertage komplett vom Job ab. Die anderen sind…

4 Tagen ago

Hacker missbrauchen Google Calendar zum Angriff auf Postfächer

Security-Experten von Check Point sind einer neuen Angriffsart auf die Spur gekommen, die E-Mail-Schutzmaßnahmen umgehen…

5 Tagen ago