Compartilhar via


FileSystemWatcher.Created Evento

Definição

Ocorre quando um arquivo ou diretório no especificado Path é criado.

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 

Tipo de evento

Atributos

Exemplos

O exemplo a seguir usa o Created evento para exibir o caminho do arquivo para o console sempre que o arquivo assistido é criado.

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

Comentários

Algumas ocorrências comuns, como copiar ou mover um arquivo ou diretório, não correspondem diretamente a um evento, mas essas ocorrências fazem com que os eventos sejam gerados. Quando você copia um arquivo ou diretório, o sistema gera um Created evento no diretório para o qual o arquivo foi copiado, se esse diretório estiver sendo observado. Se o diretório do qual você copiou estava sendo observado por outra instância, FileSystemWatchernenhum evento seria gerado. Por exemplo, você cria duas instâncias de FileSystemWatcher. FileSystemWatcher1 está definido para assistir "C:\My Documents" e FileSystemWatcher2 está definido para assistir "C:\Seus Documentos". Se você copiar um arquivo de "Meus Documentos" para "Seus Documentos", um Created evento será gerado pelo FileSystemWatcher2, mas nenhum evento será gerado para FileSystemWatcher1. Ao contrário da cópia, mover um arquivo ou diretório geraria dois eventos. Do exemplo anterior, se você movesse um arquivo de "Meus Documentos" para "Seus Documentos", um Created evento seria gerado pelo FileSystemWatcher2 e um Deleted evento seria gerado pelo FileSystemWatcher1.

Observação

Operações comuns do sistema de arquivos podem gerar mais de um evento. Por exemplo, quando um arquivo é movido de um diretório para outro, vários OnChanged e alguns OnCreated e OnDeleted eventos podem ser gerados. Mover um arquivo é uma operação complexa que consiste em várias operações simples, gerando, portanto, vários eventos. Da mesma forma, alguns aplicativos (por exemplo, software antivírus) podem causar eventos adicionais do sistema de arquivos detectados por FileSystemWatcher.

Observação

A ordem na qual o Created evento é gerado em relação aos outros FileSystemWatcher eventos pode mudar quando a SynchronizingObject propriedade não nullé .

O OnCreated evento é acionado assim que um arquivo é criado. Se um arquivo estiver sendo copiado ou transferido para um diretório assistido, o OnCreated evento será gerado imediatamente, seguido por um ou mais OnChanged eventos.

Aplica-se a

Confira também