Freigeben über


SO WIRD'S GEMACHT: Konfigurieren von Instanzen von FileSystemWatcher-Komponenten

Dieser Dokumentation für die Vorschau nur ist und in späteren Versionen geändert. Leere Themen wurden als Platzhalter eingefügt.]

Sind mehrere Eigenschaften, die Sie für Ihre FileSystemWatcher Komponenteninstanzen bestimmen, wie Sie sich Verhalten festlegen. Diese Eigenschaften bestimmen, welche Verzeichnisse und Unterverzeichnisse, die die Komponenteninstanz überwacht und die genauen Vorkommen in diesen Verzeichnissen, die Ereignisse auslöst.

Die zu überwachenden Verzeichnisse angeben

Sie verwenden zwei Eigenschaften, um welche Verzeichnisse bestimmen die FileSystemWatcher Komponente ansehen sollten: Path und IncludeSubdirectories.

An den vollqualifizierten Pfad des zu überwachenden Stammverzeichnisses

  • Legen Sie die Path-Eigenschaft für eine bestehende Komponenteninstanz, wie in den folgenden Code dargestellt:

                                  Dim MyWatcher AsNew System.IO.FileSystemWatcher()
    MyWatcher.Path = "c:\"
    
            System.IO.FileSystemWatcher MyWatcher = new System.IO.FileSystemWatcher();
            MyWatcher.Path = "c:\\";
    

    Diese Einstellung kann im standardmäßigen Verzeichnis Pfad Notation (c:\directory) oder im UNC-Format (\\Server\Verzeichnis) sein.

Die Eigenschaft "IncludeSubdirectories" gibt an, ob Unterverzeichnisse im Stammverzeichnis überwacht werden sollen. Wenn die Eigenschaft auf true festgelegt ist, überwacht die Komponente in den Unterverzeichnissen dieselben Änderungen wie im Hauptverzeichnis.

Die Änderungen zu überwachenden angeben

Zusätzlich zur Angabe der Verzeichnisse und Unterverzeichnisse ansehen, können Sie angeben welche bestimmte Dateien und Arten von Änderungen, die Sie überwachen möchten. Teilweise, bestimmen Sie die Änderungen zu überwachenden durch Definieren von Handlern für nur diese Ereignisse, an denen Sie interessiert sind. Beispielsweise, wenn Sie nur Dateien erstellt werden, benachrichtigt werden möchten, würden Sie nur das Created-Ereignis behandeln. Sie können jedoch eine Reihe von Eigenschaften festlegen, die die Komponente Aktivitäten noch weiter einschränken.

Filter-Eigenschaft können an einer bestimmten Datei oder ein Platzhalterzeichen übereinstimmenden Muster, die die Komponente, beschränkt um nur bestimmte Dateien oder Verzeichnisse im Stammverzeichnis überwachen. Wenn Sie für die Erstellung von Textdateien im Stammverzeichnis überwachen möchten, konnte Sie beispielsweise die Filter-Eigenschaft, um "*.txt" festlegenund erstellen Sie einen Handler für das Created-Ereignis. Sie können den Filter auf einen beliebigen Wert einschließlich alle gültigen Dateien Erweiterungen festlegen. Der Standardwert "*. *"Gibt alle;""(eine leere Zeichenfolge) gibt auch alle Dateien oder Verzeichnisse zurück. Allerdings können Sie jeweils nur eine Filterzeichenfolge festlegen. Wenn müssen, können Sie den Filter ändern, nachdem der FileSystemWatcher gestartet wurde, um Ereignisse zu empfangen.

Hinweis

FileSystemWatcher-Komponente dient zum Überwachen von Änderungen in einem Verzeichnis nicht auf Änderungen an Attributen des Verzeichnisses.Beispielsweise, wenn Sie ein Verzeichnis namens c:\MyProjects sich gerade ansehen, überwacht die Komponente Änderungen innerhalb des Verzeichnisses, jedoch keine Änderungen, die das Verzeichnis selbst.

NotifyFilter-Eigenschaft können auch weitere Änderungen beschränken, die zu reagiert. Sie können die Eigenschaft NotifyFilter Überwachen von Änderungen an Verzeichnisnamen, Dateinamen oder beide festlegen. NotifyFilter -Eigenschaft enthält darüber hinaus eine Reihe der Werte, die das Changed-Ereignis einschränken. Changed Ereignis hat die Möglichkeit, eine große Anzahl von Ereignisse auslösen, da es jedes Mal ein Ereignis ausgelöst wird alle wird geändert, um die betreffende Datei;einige Standardaufgaben wie Kopieren und verschieben führen Dateien tatsächlich mehrere Datei Änderungsereignisse ausgelöst werden, wie verschiedene Attribute wie z. B. Größe, zuletzt geschrieben und letzten Zugriff geändert.

NotifyFilter-Eigenschaft beschränkt die Anzahl der Datei- oder Verzeichnis für die die Komponenteninstanz Ereignisse auslöst. Sie können Ihre Komponente einrichten, damit es Ereignisse nur bei einer Datei oder Verzeichnis-Namensänderungen ausgelöst wird, wenn die Attribute des Elements im Hauptverzeichnis ändern, wenn die Größe einer Datei, ändert Wenn der letzte Schreibzugriff oder Zeit des letzten Zugriffs ändert, oder wenn Sicherheit auf eine Datei oder Verzeichnis Rechte Änderung zugreifen. Diese Werte sind Teil der NotifyFilters-Enumeration. Sie können mehrere Änderungen an für beobachten mithilfe eines BitOr (für Visual Basic) oder | (für Visual C#)-Operator, wie im folgenden Beispiel gezeigt festlegen.

Hinweis

EnableRaisingEvents -Eigenschaft muss auf true damit FileSystemWatcher-Komponente zum Starten der Überwachung von Änderungen festgelegt werden.

So konfigurieren Sie eine Instanz der FileSystemWatcher-Komponente

  1. Erstellen Sie eine Instanz der Komponente FileSystemWatcher. Weitere Informationen finden Sie unter SO WIRD'S GEMACHT: Erstellen von Instanzen von FileSystemWatcher-Komponenten.

  2. Legen Sie die Path-Eigenschaft auf den voll gekennzeichneten Pfad des Stammverzeichnisses überwacht werden soll.

    Tipp

    Sie können dies als einen standardmäßigen Dateipfad oder einen UNC-Pfad eingeben.

  3. Legen Sie die optionalen Eigenschaften für die Instanz.

    Szenario

    -Eigenschaft

    Wert

    Überwachen von Änderungen einer bestimmten Datei oder ein Unterverzeichnis Namen innerhalb des Stamms

    Filter

    Ein Platzhalter-Filterausdruck, der die überwachen Aktivitäten von der Instanz einschränkt

    Zum Überwachen von Änderungen in sämtlichen Unterverzeichnissen des Stammverzeichnis enthält

    IncludeSubdirectories

    true oder false

    Um nur bestimmte Änderungen an eine Datei oder ein Unterverzeichnis zu überwachen, bei der Behandlung der Changed, Renamed, Deletedoder Created Ereignis

    NotifyFilter

    Die verfügbaren Werte in der NotifyFilters-enumeration

  4. Aktivieren Sie die Komponenteninstanz, indem Sie die EnableRaisingEvents -Eigenschaft auf true festlegen.

    Genommen Sie an, Sie möchten eine FileSystemWatcher Instanz zu erstellen, die ein Ablageverzeichnis Bezeichnung "Berichte" überwachtfür die Erstellung der neue TXT-Dateien. Außerdem möchten Änderungen an bestehenden Berichten überwachen, die dynamisch erneut ausführen, wenn Daten geändert werden. Sie würden Ihre Komponente wie folgt einrichten:

                                  ' This needs to be declared in a place where it will not go out of scope.
                                  ' For example, it would be a class variable in a form class.
                                  Dim MyWatcher AsNew System.IO.FileSystemWatcher()
    ' This code would go in one of the initialization methods of the class.
    MyWatcher.Path = "c:\"' Watch only for changes to *.txt files.
    MyWatcher.Filter = "*.txt"
    MyWatcher.IncludeSubdirectories = False' Filter for Last Write changes.
    MyWatcher.NotifyFilter = System.IO.NotifyFilters.LastWrite
    ' Example of watching more than one type of change.
    MyWatcher.NotifyFilter =
       System.IO.NotifyFilters.LastAccess Or System.IO.NotifyFilters.Size
    ' Enable the component to begin watching for changes.
    MyWatcher.EnableRaisingEvents = True
    
                                  // This needs to be declared in a place where it will not go out of scope.
                                  // For example, it would be a class variable in a form class.
            System.IO.FileSystemWatcher MyWatcher = new System.IO.FileSystemWatcher();
            // This code would go in one of the initialization methods of the class.
            MyWatcher.Path = "c:\\";
            // Watch only for changes to *.txt files.
            MyWatcher.Filter = "*.txt";
            MyWatcher.IncludeSubdirectories = false;
            // Enable the component to begin watching for changes.
            MyWatcher.EnableRaisingEvents = true;
            // Filter for Last Write changes.
            MyWatcher.NotifyFilter = System.IO.NotifyFilters.LastWrite;
            // Example of watching more than one type of change.
            MyWatcher.NotifyFilter =
               System.IO.NotifyFilters.LastWrite | System.IO.NotifyFilters.Size;
    

Siehe auch

Aufgaben

SO WIRD'S GEMACHT: Erstellen von Instanzen von FileSystemWatcher-Komponenten

Konzepte

Einführung in die Überwachung Dateisystemereignisse