FileSystemWatcher

O componente FileSystemWatcher permite escutar um diretório, árvore de diretório gerando eventos quando um diretório ou arquivo é alterado. Este componente pode ser usado para monitorar arquivos locais, remota ou ambiente de rede local, para utiliza-lo na aplicação é necessário declarar o namespace System.IO.

Para que os eventos sejam disparados é necessário setar a propriedade EnableRaisingEvents como true. A manipulação dos eventos do sistema de arquivos é realizado através de 4 eventos dependendo do tipo de alteração que ocorre no diretório ou arquivo.

  • Created: Quando há uma criação de pasta ou arquivo.
  • Deleted: Quando um arquivo ou pasta é deletado.
  • Renamed: Quando um arquivo ou pasta é renomeado.
  • Changed: Quando há uma alteração na pasta ou arquivo.

Para acessar estes eventos é necessário definir a invocação dos métodos no código quando ocorre a mudança.


_watcher.Created += watcher_Created;

_watcher.Deleted += _watcher_Deleted;

_watcher.Renamed += _watcher_Renamed;

_watcher.Changed += _watcher_Changed;

Em alguns casos há a necessidade de monitorar subpastas/subdiretórios ou filtrar por alguma extensão de arquivo específica, para estes casos duas propriedades devem ser setadas.

  • IncludeSubdirectories: Esta propriedade deve ser setada caso deseje monitorar subdiretórios existentes na pasta.
  • Filter: Esta propriedade deve ser setada caso deseje monitorar apenas algum tipo de arquivo específico, por exemplo: “*.png”.

Para criação do FileSystemWatcher dentre os argumentos a ser passados no construtor é possível passar o caminho do diretório a ser monitorado, conforme o exemplo abaixo:


System.IO.FileSystemWatcher fileSystemWatcher = new System.IO.FileSystemWatcher(“C:\NovaPasta”);

Na estrutura abaixo é apresentada toda manipulação de eventos.


static FileSystemWatcher _watcher;

static List<FileSystemWatcher> filesSystemWatcher = new       List<FileSystemWatcher>("C:\NovaPasta");

static void _watcher_Changed(object sender, FileSystemEventArgs e)

{

Console.Write("HOUVE MUDANÇAS");

}

static void _watcher_Renamed(object sender, RenamedEventArgs e)

{

Console.Write("FOI RENOMEADO");

}

&nbsp;

static void _watcher_Deleted(object sender, FileSystemEventArgs e)

{

Console.Write("FOI REMOVIDO");

}

static void _watcher_Created(object sender, FileSystemEventArgs e)

{

Console.Write("FOI CRIADO!!!!");

}

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s