ciao, ti viene notificato una volta per ogni azione, ovvero immaginando che modifichi un nome file, ne hai uno per "NotifyFilters.FileName " e uno per "NotifyFilters.LastWrite". o almeno così dovrebbe essere.Originariamente inviato da sowdust
Buongiorno a tutti,
sto scrivendo un semplice filewatcher che monitori una cartella ed esegua dei comandi ogni volta che un file nella cartella viene modificato (nello specifico i file vengono sovrascritti via ftp).
questa è la classe che viene chiamata:
e questa è la porzione di codice nella quale si richiama la classecodice:private static void OnChanged(object source, FileSystemEventArgs e) { . Console.WriteLine("File: " + e.Name + " " + e.ChangeType); // the resto of the commands that are executed when a file is overwritten }
il problema è che ogni volta che un file viene modificato, l'avviso su console appare due volte di seguito e i comandi vengono eseguiti due volte (in questo caso vengono aperte due istanze di matlab).codice:public static void Run() { string pathToWatch = "C:\\Documents and Settings\\aa"; FileSystemWatcher watcher = new FileSystemWatcher(); watcher.Path = pathToWatch; watcher.NotifyFilter = NotifyFilters.LastWrite | NotifyFilters.FileName | NotifyFilters.DirectoryName; watcher.Changed += new FileSystemEventHandler(OnChanged); watcher.EnableRaisingEvents = true; }
Ora, al problema può essere messa una pezza in diversi modi, ma come mai succede così?
grazie anticipate!
:copiaIncollaInside:![]()
![]()