Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

FileSystemWatcher-Klasse

 

Veröffentlicht: Oktober 2016

Überwacht die Benachrichtigungen über Änderungen im Dateisystem und löst Ereignisse aus, wenn ein Verzeichnis oder eine Datei in einem Verzeichnis geändert werden.

Informationen zum Durchsuchen des .NET Framework-Quellcodes für diesen Typ finden Sie in der Verweisquelle.

Namespace:   System.IO
Assembly:  System (in System.dll)

System.Object
  System.MarshalByRefObject
    System.ComponentModel.Component
      System.IO.FileSystemWatcher

[IODescriptionAttribute("FileSystemWatcherDesc")]
[PermissionSetAttribute(SecurityAction.LinkDemand, Name = "FullTrust")]
[PermissionSetAttribute(SecurityAction.InheritanceDemand, Name = "FullTrust")]
public class FileSystemWatcher : Component, ISupportInitialize

NameBeschreibung
System_CAPS_pubmethodFileSystemWatcher()

Initialisiert eine neue Instanz der FileSystemWatcher-Klasse.

System_CAPS_pubmethodFileSystemWatcher(String)

Initialisiert eine neue Instanz der FileSystemWatcher-Klasse mit dem für die Überwachung angegebenen Verzeichnis.

System_CAPS_pubmethodFileSystemWatcher(String, String)

Initialisiert eine neue Instanz der FileSystemWatcher-Klasse mit dem für die Überwachung angegebenen Verzeichnis und Dateityp.

NameBeschreibung
System_CAPS_protpropertyCanRaiseEvents

Ruft einen Wert, der angibt, ob die Komponente ein Ereignis auslösen kann.(Geerbt von „Component“.)

System_CAPS_pubpropertyContainer

Ruft die IContainer enthält die Component.(Geerbt von „Component“.)

System_CAPS_protpropertyDesignMode

Ruft einen Wert, der angibt, ob die Component befindet sich derzeit im Entwurfsmodus befindet.(Geerbt von „Component“.)

System_CAPS_pubpropertyEnableRaisingEvents

Ruft einen Wert ab, der angibt, ob die Komponente aktiviert ist, oder legt diesen fest.

System_CAPS_protpropertyEvents

Ruft die Liste der Ereignishandler, die mit dieser verknüpft sind Component.(Geerbt von „Component“.)

System_CAPS_pubpropertyFilter

Ruft die Filterzeichenfolge ab, mit der die in einem Verzeichnis zu überwachenden Dateien bestimmt werden, oder legt die Filterzeichenfolge fest.

System_CAPS_pubpropertyIncludeSubdirectories

Ruft einen Wert ab, der angibt, ob die Unterverzeichnisse im angegebenen Pfad überwacht werden sollen, oder legt diesen fest.

System_CAPS_pubpropertyInternalBufferSize

Ruft die Größe (in Byte) des internen Puffers ab oder legt diese fest.

System_CAPS_pubpropertyNotifyFilter

Ruft den Typ der zu überwachenden Änderungen ab oder legt diesen fest.

System_CAPS_pubpropertyPath

Ruft den Pfad des zu überwachenden Verzeichnisses ab oder legt diesen fest.

System_CAPS_pubpropertySite

Ruft eine ISite für den FileSystemWatcher ab oder legt diese fest.(Überschreibt Component.Site.)

System_CAPS_pubpropertySynchronizingObject

Ruft das Objekt ab, das zum Marshallen von Ereignishandleraufrufen verwendet wird, die aufgrund einer Verzeichnisänderung ausgegeben werden, oder legt dieses fest.

NameBeschreibung
System_CAPS_pubmethodBeginInit()

Beginnt die Initialisierung von FileSystemWatcher für die Verwendung in einem Formular oder durch eine andere Komponente. Die Initialisierung erfolgt zur Laufzeit.

System_CAPS_pubmethodCreateObjRef(Type)

Erstellt ein Objekt, das alle relevanten Informationen, die zum Generieren eines Proxys für die Kommunikation mit einem Remoteobjekt verwendet die enthält.(Geerbt von „MarshalByRefObject“.)

System_CAPS_pubmethodDispose()

Gibt alle vom Component verwendeten Ressourcen frei.(Geerbt von „Component“.)

System_CAPS_protmethodDispose(Boolean)

Gibt die von FileSystemWatcher verwendeten nicht verwalteten Ressourcen und optional die verwalteten Ressourcen frei.(Überschreibt Component.Dispose(Boolean).)

System_CAPS_pubmethodEndInit()

Beendet die Initialisierung von FileSystemWatcher für die Verwendung in einem Formular oder durch eine andere Komponente. Die Initialisierung erfolgt zur Laufzeit.

System_CAPS_pubmethodEquals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.(Geerbt von „Object“.)

System_CAPS_protmethodFinalize()

Gibt nicht verwaltete Ressourcen frei und führt andere Bereinigungsvorgänge durch, bevor die Component durch die Garbage Collection wieder zugänglich gemacht wird.(Geerbt von „Component“.)

System_CAPS_pubmethodGetHashCode()

Fungiert als die Standardhashfunktion.(Geerbt von „Object“.)

System_CAPS_pubmethodGetLifetimeService()

Ruft das Dienstobjekt für aktuellen Lebensdauer, das steuert, die lebensdauerrichtlinie für diese Instanz ab.(Geerbt von „MarshalByRefObject“.)

System_CAPS_protmethodGetService(Type)

Gibt ein Objekt zurück, das einen von der Component oder von deren Container bereitgestellten Dienst darstellt.(Geerbt von „Component“.)

System_CAPS_pubmethodGetType()

Ruft den Type der aktuellen Instanz ab.(Geerbt von „Object“.)

System_CAPS_pubmethodInitializeLifetimeService()

Ruft ein Lebensdauerdienstobjekt zur Steuerung der Lebensdauerrichtlinie für diese Instanz ab.(Geerbt von „MarshalByRefObject“.)

System_CAPS_protmethodMemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.(Geerbt von „Object“.)

System_CAPS_protmethodMemberwiseClone(Boolean)

Erstellt eine flache Kopie des aktuellen MarshalByRefObject Objekt.(Geerbt von „MarshalByRefObject“.)

System_CAPS_protmethodOnChanged(FileSystemEventArgs)

Löst das Changed-Ereignis aus.

System_CAPS_protmethodOnCreated(FileSystemEventArgs)

Löst das Created-Ereignis aus.

System_CAPS_protmethodOnDeleted(FileSystemEventArgs)

Löst das Deleted-Ereignis aus.

System_CAPS_protmethodOnError(ErrorEventArgs)

Löst das Error-Ereignis aus.

System_CAPS_protmethodOnRenamed(RenamedEventArgs)

Löst das Renamed-Ereignis aus.

System_CAPS_pubmethodToString()

Gibt eine String mit dem Namen der Component, sofern vorhanden. Diese Methode darf nicht überschrieben werden.(Geerbt von „Component“.)

System_CAPS_pubmethodWaitForChanged(WatcherChangeTypes)

Eine synchrone Methode, die eine Struktur mit spezifischen Informationen zur eingetretenen Änderung zurückgibt, sofern diese mit der Art der Änderung übereinstimmt, die überwacht werden soll.

System_CAPS_pubmethodWaitForChanged(WatcherChangeTypes, Int32)

Eine synchrone Methode, die eine Struktur mit spezifischen Informationen zur eingetretenen Änderung zurückgibt, sofern diese mit der Art der zu überwachenden Änderung übereinstimmt und die Zeit (in Millisekunden) bis zum Timeout nicht abgelaufen ist.

NameBeschreibung
System_CAPS_pubeventChanged

Tritt ein, wenn im angegebenen Path eine Datei oder ein Verzeichnis geändert wird.

System_CAPS_pubeventCreated

Tritt ein, wenn im angegebenen Path eine Datei oder ein Verzeichnis erstellt wird.

System_CAPS_pubeventDeleted

Tritt ein, wenn im angegebenen Path eine Datei oder ein Verzeichnis gelöscht wird.

System_CAPS_pubeventDisposed

Tritt auf, wenn die Komponente, durch einen Aufruf freigegeben wird der Dispose Methode.(Geerbt von „Component“.)

System_CAPS_pubeventError

Tritt ein, wenn die Instanz von FileSystemWatcher das Überwachen von Änderungen nicht fortzusetzen kann oder wenn der interne Puffer überläuft.

System_CAPS_pubeventRenamed

Tritt ein, wenn im angegebenen Path eine Datei oder ein Verzeichnis umbenannt wird.

System_CAPS_noteHinweis

To view the .NET Framework source code for this type, see the Reference Sourcehttp://referencesource.microsoft.com/#System/services/io/system/io/FileSystemWatcher.cs#a9eb0249dc928b09. You can browse through the source code online, download the reference for offline viewing, and step through the sources (including patches and updates) during debugging; see instructionshttp://referencesource.microsoft.com/.

Use T:System.IO.FileSystemWatcher to watch for changes in a specified directory. You can watch for changes in files and subdirectories of the specified directory. You can create a component to watch files on a local computer, a network drive, or a remote computer.

To watch for changes in all files, set the P:System.IO.FileSystemWatcher.Filter property to an empty string ("") or use wildcards ("*.*"). To watch a specific file, set the P:System.IO.FileSystemWatcher.Filter property to the file name. For example, to watch for changes in the file MyDoc.txt, set the P:System.IO.FileSystemWatcher.Filter property to "MyDoc.txt". You can also watch for changes in a certain type of file. For example, to watch for changes in text files, set the P:System.IO.FileSystemWatcher.Filter property to "*.txt".

There are several types of changes you can watch for in a directory or file. For example, you can watch for changes in Attributes, the LastWrite date and time, or the Size of files or directories. This is done by setting the P:System.IO.FileSystemWatcher.NotifyFilter property to one of the T:System.IO.NotifyFilters values. For more information on the type of changes you can watch, see T:System.IO.NotifyFilters.

You can watch for renaming, deletion, or creation of files or directories. For example, to watch for renaming of text files, set the P:System.IO.FileSystemWatcher.Filter property to "*.txt" and call the M:System.IO.FileSystemWatcher.WaitForChanged(System.IO.WatcherChangeTypes) method with a F:System.IO.WatcherChangeTypes.Renamed specified for its parameter.

The Windows operating system notifies your component of file changes in a buffer created by the T:System.IO.FileSystemWatcher. If there are many changes in a short time, the buffer can overflow. This causes the component to lose track of changes in the directory, and it will only provide blanket notification. Increasing the size of the buffer with the P:System.IO.FileSystemWatcher.InternalBufferSize property is expensive, as it comes from non-paged memory that cannot be swapped out to disk, so keep the buffer as small yet large enough to not miss any file change events. To avoid a buffer overflow, use the P:System.IO.FileSystemWatcher.NotifyFilter and P:System.IO.FileSystemWatcher.IncludeSubdirectories properties so you can filter out unwanted change notifications.

For a list of initial property values for an instance of T:System.IO.FileSystemWatcher, see the M:System.IO.FileSystemWatcher.#ctor constructor.

Please note the following when using the T:System.IO.FileSystemWatcher class.

  • Hidden files are not ignored.

  • In some systems, T:System.IO.FileSystemWatcher reports changes to files using the short 8.3 file name format. For example, a change to "LongFileName.LongExtension" could be reported as "LongFil~.Lon".

  • This class contains a link demand and an inheritance demand at the class level that applies to all members. A T:System.Security.SecurityException is thrown when either the immediate caller or the derived class does not have full-trust permission. For details about security demands, see Link Demands.

  • The maximum size you can set for the P:System.IO.FileSystemWatcher.InternalBufferSize property for monitoring a directory over the network is 64 KB.

System_CAPS_noteHinweis

Running T:System.IO.FileSystemWatcher on Windows 98 is not supported.

The operating system and T:System.IO.FileSystemWatcher object interpret a cut-and-paste action or a move action as a rename action for a folder and its contents. If you cut and paste a folder with files into a folder being watched, the T:System.IO.FileSystemWatcher object reports only the folder as new, but not its contents because they are essentially only renamed.

To be notified that the contents of folders have been moved or copied into a watched folder, provide M:System.IO.FileSystemWatcher.OnChanged(System.IO.FileSystemEventArgs) and M:System.IO.FileSystemWatcher.OnRenamed(System.IO.RenamedEventArgs) event handler methods as suggested in the following table.

Event Handler

Events Handled

Performs

OnChanged

Changed, Created, Deleted

Report changes in file attributes, created files, and deleted files.

OnRenamed

Renamed

List the old and new paths of renamed files and folders, expanding recursively if needed.

Note that several factors can affect which file system change events are raised, as described by the following:

  • Common file system operations might raise more than one event. For example, when a file is moved from one directory to another, several M:System.IO.FileSystemWatcher.OnChanged(System.IO.FileSystemEventArgs) and some M:System.IO.FileSystemWatcher.OnCreated(System.IO.FileSystemEventArgs) and M:System.IO.FileSystemWatcher.OnDeleted(System.IO.FileSystemEventArgs) events might be raised. Moving a file is a complex operation that consists of multiple simple operations, therefore raising multiple events. Likewise, some applications (for example, antivirus software) might cause additional file system events that are detected by T:System.IO.FileSystemWatcher.

  • The T:System.IO.FileSystemWatcher can watch disks as long as they are not switched or removed. The T:System.IO.FileSystemWatcher does not raise events for CDs and DVDs, because time stamps and properties cannot change. Remote computers must have one of the required platforms installed for the component to function properly.

  • If multiple T:System.IO.FileSystemWatcher objects are watching the same UNC path in Windows XP prior to Service Pack 1, or Windows 2000 SP2 or earlier, then only one of the objects will raise an event. On machines running Windows XP SP1 and newer, Windows 2000 SP3 or newer or Windows Server 2003, all T:System.IO.FileSystemWatcher objects will raise the appropriate events.

Note that a T:System.IO.FileSystemWatcher may miss an event when the buffer size is exceeded. To avoid missing events, follow these guidelines:

  • Increase the buffer size by setting the P:System.IO.FileSystemWatcher.InternalBufferSize property.

  • Avoid watching files with long file names, because a long file name contributes to filling up the buffer. Consider renaming these files using shorter names.

  • Keep your event handling code as short as possible.

The following example creates a T:System.IO.FileSystemWatcher to watch the directory specified at run time. The component is set to watch for changes in LastWrite and LastAccess time, the creation, deletion, or renaming of text files in the directory. If a file is changed, created, or deleted, the path to the file prints to the console. When a file is renamed, the old and new paths print to the console.

Use the N:System.Diagnostics and N:System.IO namespaces for this example.

using System;
using System.IO;
using System.Security.Permissions;

public class Watcher
{

    public static void Main()
    {
    Run();

    }

    [PermissionSet(SecurityAction.Demand, Name="FullTrust")]
    public static void Run()
    {
        string[] args = System.Environment.GetCommandLineArgs();

        // If a directory is not specified, exit program.
        if(args.Length != 2)
        {
            // Display the proper way to call the program.
            Console.WriteLine("Usage: Watcher.exe (directory)");
            return;
        }

        // Create a new FileSystemWatcher and set its properties.
        FileSystemWatcher watcher = new FileSystemWatcher();
        watcher.Path = args[1];
        /* Watch for changes in LastAccess and LastWrite times, and
           the renaming of files or directories. */
        watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
           | NotifyFilters.FileName | NotifyFilters.DirectoryName;
        // Only watch text files.
        watcher.Filter = "*.txt";

        // Add event handlers.
        watcher.Changed += new FileSystemEventHandler(OnChanged);
        watcher.Created += new FileSystemEventHandler(OnChanged);
        watcher.Deleted += new FileSystemEventHandler(OnChanged);
        watcher.Renamed += new RenamedEventHandler(OnRenamed);

        // Begin watching.
        watcher.EnableRaisingEvents = true;

        // Wait for the user to quit the program.
        Console.WriteLine("Press \'q\' to quit the sample.");
        while(Console.Read()!='q');
    }

    // Define the event handlers.
    private static void OnChanged(object source, FileSystemEventArgs e)
    {
        // Specify what is done when a file is changed, created, or deleted.
       Console.WriteLine("File: " +  e.FullPath + " " + e.ChangeType);
    }

    private static void OnRenamed(object source, RenamedEventArgs e)
    {
        // Specify what is done when a file is renamed.
        Console.WriteLine("File: {0} renamed to {1}", e.OldFullPath, e.FullPath);
    }
}

SecurityPermission

for calling members of T:System.Diagnostics.ProcessStartInfo. Demand value: F:System.Security.Permissions.SecurityAction.LinkDemand; Named Permission Sets: FullTrust.

For a sample that uses the T:System.IO.FileSystemWatcher class, see Using a FileSystemWatcher Component in a Windows Formhttp://code.msdn.microsoft.com/Using-a-FileSystemWatcher-4bc97af4

SecurityPermission

for deriving from the T:System.Diagnostics.ProcessStartInfo class. Demand value: F:System.Security.Permissions.SecurityAction.InheritanceDemand; Named Permission Sets: FullTrust.

.NET Framework
Verfügbar seit 1.1

Alle öffentlichen statischen Member ( Shared in Visual Basic) dieses Typs sind threadsicher. Die Threadsicherheit für Instanzmember ist nicht garantiert.

Zurück zum Anfang
Anzeigen: