Resumo : neste tutorial, você aprenderá como usar a FileSystemWatcher
classe C# para monitorar alterações em arquivos ou diretórios em tempo real.
Introdução à classe C# FileSystemWatcher
A classe C# FileSystemWatcher
permite monitorar um diretório ou arquivo específico em busca de alterações em tempo real.
A FileSystemWatcher
classe fornece eventos que você pode assinar, como Created
, Deleted
, Changed
e Renamed
, e permite executar código que responde a esses eventos.
Na prática, você pode usar a FileSystemWatcher
classe 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 FileSystemWatcher
para 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 FileSystemWatcher
classe 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 Created
evento:
private static void OnFileCreated(object source, FileSystemEventArgs e)
{
Console.WriteLine("File Created: {0}", e.FullPath);
}
Linguagem de código: C# ( cs )
Finalmente, comece FileSystemWatcher
definindo a EnableRaisingEvents
propriedade como true:
watcher.EnableRaisingEvents = true;
Linguagem de código: C# ( cs )
De agora em diante, o FileSystemWatcher
irá monitorar o C:\temp
diretó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:\temp
diretó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.txt
Linguagem de código: C# ( cs )
Resumo
- Use a
FileSystemWatcher
classe para monitorar alterações em arquivos ou diretórios em tempo real.