Gewusst wie: Erstellen von Handlern für Dateisystemereignisse
Aktualisiert: November 2007
Die FileSystemWatcher-Komponente löst abhängig von den Änderungen, die im überwachten Verzeichnis vorgenommen werden, vier Ereignisse aus. Dies sind im Einzelnen:
Created – Wird ausgelöst, wenn ein Verzeichnis oder eine Datei erstellt wird.
Deleted – Wird ausgelöst, wenn ein Verzeichnis oder eine Datei gelöscht wird.
Renamed – Wird ausgelöst, wenn der Name eines Verzeichnisses oder einer Datei geändert wird.
Changed – Wird ausgelöst, wenn für ein Verzeichnis oder eine Datei Änderungen der Größe, der Systemattribute, des Zeitpunkts der letzten Bearbeitung, des Zeitpunkts des letzten Zugriffs oder der NTFS-Sicherheitsberechtigungen erfolgen.
Hinweis: Sie können mit der NotifyFilter-Eigenschaft die Menge der Ereignisse beschränken, die das Changed-Ereignis auslöst. Weitere Informationen hierzu finden Sie unter Gewusst wie: Konfigurieren von Instanzen von FileSystemWatcher-Komponenten.
Für jedes dieser Ereignisse können Sie Handler definieren, die automatisch Methoden im Code aufrufen, sobald eine Änderung erfolgt ist. Ein Ereignishandler ist eine Methode, die an ein komponenten-, formular- oder steuerelementspezifisches Ereignis gebunden ist. Jeder Ereignishandler bietet zwei Parameter zur ordnungsgemäßen Behandlung des Ereignisses: den sender-Parameter, der einen Objektverweis auf das für das Ereignis verantwortliche Objekt bereitstellt, und den e-Parameter, der ein Objekt zum Darstellen des Ereignisses und der dazugehörigen Informationen bereitstellt.
Es gibt mehrere Möglichkeiten, einen Ereignishandler für eine Instanz der FileSystemWatcher-Komponente zu erstellen. Am einfachsten ist es jedoch, einen Großteil des Codes automatisch von Visual Studio generieren zu lassen. Wenn Sie im Designer auf die Instanz der FileSystemWatcher-Komponente doppelklicken, öffnet Visual Studio den Code-Editor und erstellt einen Ereignishandler für das Changed-Ereignis sowie für die von ihm aufgerufene leere Prozedur. Anschließend können Sie die Verarbeitungsschritte eingeben, die in der Prozedur enthalten sein sollen. Sie können auch eigene Handler für die anderen Ereignisse erstellen.
Weitere Informationen zu Ereignishandlern finden Sie unter Behandeln und Auslösen von Ereignissen.
So erstellen Sie einen Standardhandler für das Changed-Ereignis
Erstellen Sie eine Instanz der FileSystemWatcher-Komponente. Weitere Informationen hierzu finden Sie unter Gewusst wie: Erstellen von Instanzen von FileSystemWatcher-Komponenten.
Legen Sie die erforderlichen Eigenschaften für die Komponente fest. Weitere Informationen hierzu finden Sie unter Gewusst wie: Konfigurieren von Instanzen von FileSystemWatcher-Komponenten.
Doppelklicken Sie im Designer auf die FileSystemWatcher-Komponente, für die ein Handler erstellt werden soll.
Hinweis: Dem Code werden im daraufhin geöffneten Code-Editor zwei Elemente hinzugefügt: der Handler, der einen Delegaten erstellt und registriert sowie die Prozedur aufruft, und eine leere Prozedur für das Changed-Ereignis.
Definieren Sie den Code, der beim Aufruf dieses Ereignisses ausgeführt werden soll, in der leeren Prozedur für das Changed-Ereignis.
So erstellen Sie einen Handler für das FileSystemWatcher Ereignis
Erstellen Sie eine Instanz der FileSystemWatcher-Komponente. Weitere Informationen hierzu finden Sie unter Gewusst wie: Erstellen von Instanzen von FileSystemWatcher-Komponenten.
Legen Sie die erforderlichen Eigenschaften für die Komponente fest. Weitere Informationen hierzu finden Sie unter Gewusst wie: Konfigurieren von Instanzen von FileSystemWatcher-Komponenten.
Erstellen Sie die Prozedur, die aufgerufen wird, und definieren Sie den Code zur Verarbeitung der Einträge. Im folgenden Beispiel wird ein Ereignishandler für das Changed-Ereignis gezeigt.
Private Sub myWatcher_Changed(ByVal sender As System.Object, _ ByVal e As System.IO.FileSystemEventArgs) Dim pathChanged As String pathChanged = e.FullPath End Sub
private void myWatcher_Changed(object sender, System.IO.FileSystemEventArgs e) { string pathChanged = e.FullPath; }
Weisen Sie dem Ereignis eine Instanz von FileSystemEventHandler für die Komponente zu. In diesem Beispiel wird der in Schritt 3 definierte Changed-Ereignishandler hinzugefügt.
AddHandler myWatcher.Changed, _ New System.IO.FileSystemEventHandler(AddressOf Me.myWatcher_Changed)
myWatcher.Changed += new System.IO.FileSystemEventHandler(this.myWatcher_Changed);
Siehe auch
Aufgaben
Gewusst wie: Erstellen von Instanzen von FileSystemWatcher-Komponenten
Gewusst wie: Konfigurieren von Instanzen von FileSystemWatcher-Komponenten