Tuesday, June 17, 2014

C# - FileSystemWacher Beispiel

Kurzes Beispiel wie die FileSystemWaccher Klasse eingebunden werden kann.

In meinem Beispiel verwende ich eine leere Windows Form Applikation.

Erster Schritt, wir fügen eine TextBox und einen Button zu der Form.












Also nächstes fügen wir die FileSystemWatcher Klasse hinzu.
In diesem Beispiel verwende ich den StartButton um die FileSystemWatcher Klasse zu initialisieren.











Die FileSystemWatcher Klasse soll einen lokalen Pfad überwachen.

Mit watcher.Created += watcherEventwatcher.Deleted += watcherEvent and watcher.Renamed += watcherEvent erstellen wir die Events welche überwacht werden sollen.
Das erste Event dient zur Überwachung für neu erstellte Objekte. (watcher.Created += watcherEvent)
Das zweite Event dient zur Überwachung für gelöschte Objekte. (watcher.Deleted += watcherEvent)
Das dritte Event dient zur Überwachung für umbenannte Objekte. (watcher.Renamed += watcherEvent)

Objekte können in diesem Fall zum Beispiel Ordner oder Dateien sein.

Als nächsten Schritt implementieren wie die Aktion welche hinter dem watcherEvent ausgeführt werden soll.



















Mit dieser Funktion arbeiten wir alle 3 Events ab.
In diesem Beispiel schreibe ich nur den Event-Typ in die TextBox.

Dazu müssen wir das ganze mit einem delegate versehen.
Das ist notwendig, weil der FileSystemWatcher im Hintergrund als eigener Prozess läuft und prozessübergreifende Änderungen an der Form ohne delegate nicht erlaubt sind.

Dazu habe ich eine Funkion "UpdateWatcherOutput" und ein dazugehöriges delegate UpdateWatcherOutputCallback erstellt.

In dieser Funktion können wir Änderungen an der Form zur Laufzeit vornehmen.

Zusätzlich überprüfen wir im FileSystemWatcher ob ein Invoke (Prozessänderung) notwendig ist. (WatcherOutputTextBox.InvokeRequired)

Solle dies zutreffen (TRUE), erstellen wir ein neues delegate UpdateWatcherOutputCallback.


Jetzt können wir das kleine Programm starten und mit dem Button können wir dem FileSystemWatcher mitteilen, dass er mit seiner Aufgabe beginnen soll.
Wenn wir jetzt einen Ordner oder eine Datei in dem angegeben Pfad erstellen, wird Create in der TextBox erscheinen.

Diese Spielerei kann nach Belieben erweitert werden.

Have fun :-)

No comments:

Post a Comment