C# FileSystemWatcher

Resumo : neste tutorial, você aprenderá como usar a FileSystemWatcherclasse C# para monitorar alterações em arquivos ou diretórios em tempo real.

Introdução à classe C# FileSystemWatcher

A classe C# FileSystemWatcherpermite monitorar um diretório ou arquivo específico em busca de alterações em tempo real.

A FileSystemWatcherclasse fornece eventos que você pode assinar, como Created, Deleted, Changede Renamed, e permite executar código que responde a esses eventos.

Na prática, você pode usar a FileSystemWatcherclasse em muitas aplicações, como sincronização de arquivos, backups automatizados e processamento de dados em tempo real.

Exemplo de FileSystemWatcher em C#

O exemplo a seguir demonstra como usar FileSystemWatcherpara monitorar o arquivo de texto criado no diretório C:\temp:

using FileSystemWatcher watcher = new();

// specify the directory to monitor
watcher.Path = @"C:\temp";

// specify the file extension to monitor (optional) 
watcher.Filter = "*.txt";

watcher.Created += new FileSystemEventHandler(OnFileCreated);

watcher.EnableRaisingEvents = true;

static void OnFileCreated(object source, FileSystemEventArgs e)
{
    Console.WriteLine("File Created: {0}", e.FullPath);
}

Console.WriteLine($"Create a new file {watcher.Filter} in the {watcher.Path} to see the event handler.");
Console.WriteLine("Press the return key to quit.");
    
Console.ReadLine();Linguagem de código:  C#  ( cs )

Como funciona.

Primeiro, crie uma nova instância da FileSystemWatcherclasse e especifique o diretório ou arquivo que deseja monitorar:

using var FileSystemWatcher watcher = new();

// specify the directory to monitor
watcher.Path = @"C:\temp";

// specify the file extension to monitor (optional) 
watcher.Filter = "*.txt"; Linguagem de código:  C#  ( cs )

Em seguida, inscreva-se nos eventos aos quais deseja responder. Por exemplo, para lidar com o evento de criação de arquivo, você pode fazer assim:

watcher.Created += new FileSystemEventHandler(OnFileCreated);Linguagem de código:  C#  ( cs )

Terceiro, defina o método manipulador de eventos que trata o Createdevento:

private static void OnFileCreated(object source, FileSystemEventArgs e)
{
    Console.WriteLine("File Created: {0}", e.FullPath);
}Linguagem de código:  C#  ( cs )

Finalmente, comece FileSystemWatcherdefinindo a EnableRaisingEventspropriedade como true:

watcher.EnableRaisingEvents = true;Linguagem de código:  C#  ( cs )

De agora em diante, o FileSystemWatcherirá monitorar o C:\tempdiretório e gerar os eventos apropriados quando um novo arquivo de texto for criado.

A saída a seguir mostra se copiarmos dois novos arquivos de texto para o C:\tempdiretório:

Create a new file *.txt in the C:\temp to see the event handler.
Press the return key to quit.
File Created: C:\temp\readme.txt
File Created: C:\temp\query.txtLinguagem de código:  C#  ( cs )

Resumo

  • Use a FileSystemWatcherclasse para monitorar alterações em arquivos ou diretórios em tempo real.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *