Estoy usando una aplicación de Windows Forms para monitorear un directorio y mover los archivos colocados en él a otro directorio.
Por el momento, copiará el archivo a otro directorio, pero cuando se agregue otro archivo, terminará sin mensaje de error. A veces copia dos archivos antes de terminar en el tercero.
¿Se debe a que estoy usando una aplicación de Windows Form en lugar de una aplicación de consola? ¿Hay alguna manera de evitar que el programa finalice y seguir viendo el directorio?
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();
}