Estou usando um aplicativo Windows Forms para monitorar um diretório e mover os arquivos inseridos nele para outro diretório.
No momento, ele irá copiar o arquivo para outro diretório, mas quando outro arquivo for adicionado, ele simplesmente terminará sem nenhuma mensagem de erro. Às vezes, ele copia dois arquivos antes de terminar no terceiro.
É porque estou usando um aplicativo de formulário do Windows em vez de um aplicativo de console? Existe uma maneira de impedir o programa de terminar e continuar observando o diretório?
private void watch()
{
this.watcher = new FileSystemWatcher();
watcher.Path = path;
watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite
| NotifyFilters.FileName | NotifyFilters.DirectoryName;
watcher.Filter = "*.*";
watcher.Changed += OnChanged;
watcher.EnableRaisingEvents = true;
}
private void OnChanged(object source, FileSystemEventArgs e)
{
//Copies file to another directory.
}
public void Dispose()
{
// avoiding resource leak
watcher.Changed -= OnChanged;
this.watcher.Dispose();
}