FileSystemWatcher con Samba en Linux
Estoy usando unFileSystemWatcher
en mi aplicación C # (que se ejecuta en Windows) para actualizar en mi aplicación los archivos que estoy buscando actualmente. Funciona bien cuando navego por un directorio local. Se me notifica cuando se cambia el nombre, se elimina o se agrega un archivo. Pero, por ejemplo, cuando cambio el nombre de un archivo en la unidad de red la primera vez,FileSystemWatcher
me notifica una acción de cambio de nombre y luego, cuando cambio el nombre del mismo archivo u otro archivo,FileSystemWatcher
me avisa de un error
the specified server cannot perform the requested operation
.
Entonces el FileSystemWatcher no me notifica nada.
A veces puedo cambiar el nombre dos veces antes de que FileSystemWatcher no me notifique nada ...
Aquí está mi código de prueba:
static void Main(string[] args)
{
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = @"N:\prive\defFolder";
watcher.NotifyFilter = NotifyFilters.FileName | NotifyFilters.LastWrite;
watcher.Changed += new FileSystemEventHandler(watcher_Changed);
watcher.Created += new FileSystemEventHandler(watcher_Changed);
watcher.Deleted += new FileSystemEventHandler(watcher_Changed);
watcher.Renamed += new RenamedEventHandler(watcher_Renamed);
watcher.Error += new ErrorEventHandler(watcher_Error);
watcher.EnableRaisingEvents = true;
Console.Read();
watcher.Dispose();
}
static void watcher_Error(object sender, ErrorEventArgs e)
{
Console.WriteLine("error : " + e.GetException().Message);
}
static void watcher_Renamed(object sender, RenamedEventArgs e)
{
Console.WriteLine("rename success");
}
static void watcher_Changed(object sender, FileSystemEventArgs e)
{
Console.WriteLine("change success");
}