Freigeben über


FileSystemWatcher.Created Ereignis

Definition

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

public:
 event System::IO::FileSystemEventHandler ^ Created;
public event System.IO.FileSystemEventHandler? Created;
public event System.IO.FileSystemEventHandler Created;
[System.IO.IODescription("FSW_Created")]
public event System.IO.FileSystemEventHandler Created;
member this.Created : System.IO.FileSystemEventHandler 
[<System.IO.IODescription("FSW_Created")>]
member this.Created : System.IO.FileSystemEventHandler 
Public Custom Event Created As FileSystemEventHandler 

Ereignistyp

Attribute

Beispiele

Im folgenden Beispiel wird das Created Ereignis verwendet, um den Dateipfad zur Konsole anzuzeigen, wenn die überwachte Datei erstellt wird.

using System;
using System.IO;

namespace MyNamespace
{
    class MyClassCS
    {
        static void Main()
        {
            using var watcher = new FileSystemWatcher(@"C:\path\to\folder");

            watcher.NotifyFilter = NotifyFilters.Attributes
                                 | NotifyFilters.CreationTime
                                 | NotifyFilters.DirectoryName
                                 | NotifyFilters.FileName
                                 | NotifyFilters.LastAccess
                                 | NotifyFilters.LastWrite
                                 | NotifyFilters.Security
                                 | NotifyFilters.Size;

            watcher.Changed += OnChanged;
            watcher.Created += OnCreated;
            watcher.Deleted += OnDeleted;
            watcher.Renamed += OnRenamed;
            watcher.Error += OnError;

            watcher.Filter = "*.txt";
            watcher.IncludeSubdirectories = true;
            watcher.EnableRaisingEvents = true;

            Console.WriteLine("Press enter to exit.");
            Console.ReadLine();
        }

        private static void OnChanged(object sender, FileSystemEventArgs e)
        {
            if (e.ChangeType != WatcherChangeTypes.Changed)
            {
                return;
            }
            Console.WriteLine($"Changed: {e.FullPath}");
        }

        private static void OnCreated(object sender, FileSystemEventArgs e)
        {
            string value = $"Created: {e.FullPath}";
            Console.WriteLine(value);
        }

        private static void OnDeleted(object sender, FileSystemEventArgs e) =>
            Console.WriteLine($"Deleted: {e.FullPath}");

        private static void OnRenamed(object sender, RenamedEventArgs e)
        {
            Console.WriteLine($"Renamed:");
            Console.WriteLine($"    Old: {e.OldFullPath}");
            Console.WriteLine($"    New: {e.FullPath}");
        }

        private static void OnError(object sender, ErrorEventArgs e) =>
            PrintException(e.GetException());

        private static void PrintException(Exception? ex)
        {
            if (ex != null)
            {
                Console.WriteLine($"Message: {ex.Message}");
                Console.WriteLine("Stacktrace:");
                Console.WriteLine(ex.StackTrace);
                Console.WriteLine();
                PrintException(ex.InnerException);
            }
        }
    }
}
Imports System.IO

Namespace MyNamespace

    Class MyClassVB

        Shared Sub Main()
            Using watcher = New FileSystemWatcher("C:\path\to\folder")
                watcher.NotifyFilter = NotifyFilters.Attributes Or
                                       NotifyFilters.CreationTime Or
                                       NotifyFilters.DirectoryName Or
                                       NotifyFilters.FileName Or
                                       NotifyFilters.LastAccess Or
                                       NotifyFilters.LastWrite Or
                                       NotifyFilters.Security Or
                                       NotifyFilters.Size

                AddHandler watcher.Changed, AddressOf OnChanged
                AddHandler watcher.Created, AddressOf OnCreated
                AddHandler watcher.Deleted, AddressOf OnDeleted
                AddHandler watcher.Renamed, AddressOf OnRenamed
                AddHandler watcher.Error, AddressOf OnError

                watcher.Filter = "*.txt"
                watcher.IncludeSubdirectories = True
                watcher.EnableRaisingEvents = True

                Console.WriteLine("Press enter to exit.")
                Console.ReadLine()
            End Using
        End Sub

        Private Shared Sub OnChanged(sender As Object, e As FileSystemEventArgs)
            If e.ChangeType <> WatcherChangeTypes.Changed Then
                Return
            End If
            Console.WriteLine($"Changed: {e.FullPath}")
        End Sub

        Private Shared Sub OnCreated(sender As Object, e As FileSystemEventArgs)
            Dim value As String = $"Created: {e.FullPath}"
            Console.WriteLine(value)
        End Sub

        Private Shared Sub OnDeleted(sender As Object, e As FileSystemEventArgs)
            Console.WriteLine($"Deleted: {e.FullPath}")
        End Sub

        Private Shared Sub OnRenamed(sender As Object, e As RenamedEventArgs)
            Console.WriteLine($"Renamed:")
            Console.WriteLine($"    Old: {e.OldFullPath}")
            Console.WriteLine($"    New: {e.FullPath}")
        End Sub

        Private Shared Sub OnError(sender As Object, e As ErrorEventArgs)
            PrintException(e.GetException())
        End Sub

        Private Shared Sub PrintException(ex As Exception)
            If ex IsNot Nothing Then
                Console.WriteLine($"Message: {ex.Message}")
                Console.WriteLine("Stacktrace:")
                Console.WriteLine(ex.StackTrace)
                Console.WriteLine()
                PrintException(ex.InnerException)
            End If
        End Sub

    End Class

End Namespace

Hinweise

Einige häufige Vorkommen, z. B. das Kopieren oder Verschieben einer Datei oder eines Verzeichnisses, entsprechen nicht direkt einem Ereignis, aber diese Vorkommen führen dazu, dass Ereignisse ausgelöst werden. Wenn Sie eine Datei oder ein Verzeichnis kopieren, löst das System ein Created Ereignis im Verzeichnis aus, in das die Datei kopiert wurde, wenn dieses Verzeichnis überwacht wird. Wenn das Verzeichnis, aus dem Sie kopiert haben, von einer anderen Instanz FileSystemWatcherüberwacht wurde, wird kein Ereignis ausgelöst. Sie erstellen beispielsweise zwei Instanzen von FileSystemWatcher. FileSystemWatcher1 ist auf die Überwachung von "C:\My Documents" festgelegt, und FileSystemWatcher2 ist auf "C:\Your Documents" festgelegt. Wenn Sie eine Datei aus "Meine Dokumente" in "Ihre Dokumente" kopieren, wird ein Created Ereignis von FileSystemWatcher2 ausgelöst, aber für FileSystemWatcher1 wird kein Ereignis ausgelöst. Im Gegensatz zum Kopieren löst das Verschieben einer Datei oder eines Verzeichnisses zwei Ereignisse aus. Wenn Sie aus dem vorherigen Beispiel eine Datei aus "Meine Dokumente" in "Ihre Dokumente" verschoben haben, wird ein Created Ereignis von FileSystemWatcher2 ausgelöst, und ein Deleted Ereignis wird von FileSystemWatcher1 ausgelöst.

Hinweis

Allgemeine Dateisystemvorgänge lösen möglicherweise mehr als ein Ereignis aus. Wenn beispielsweise eine Datei von einem Verzeichnis in ein anderes verschoben wird, können mehrere OnChanged- und einige OnCreated- sowie OnDeleted-Ereignisse ausgelöst werden. Das Verschieben einer Datei ist ein komplexer Vorgang, der aus mehreren einfachen Vorgängen besteht, wodurch mehrere Ereignisse ausgelöst werden. Ebenso können Anwendungen wie z. B. Antivirensoftware zusätzliche Dateisystemereignisse auslösen, die von FileSystemWatcher erkannt werden.

Hinweis

Die Reihenfolge, in der das Created Ereignis in Bezug auf die anderen FileSystemWatcher Ereignisse ausgelöst wird, kann sich ändern, wenn die SynchronizingObject Eigenschaft nicht nullist.

Das OnCreated Ereignis wird ausgelöst, sobald eine Datei erstellt wird. Wenn eine Datei in ein überwachtes Verzeichnis kopiert oder übertragen wird, wird das OnCreated Ereignis sofort ausgelöst, gefolgt von einem oder OnChanged mehreren Ereignissen.

Gilt für:

Weitere Informationen