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:
codice:
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
}
e questa è la porzione di codice nella quale si richiama la classe
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;
}
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).
Ora, al problema può essere messa una pezza in diversi modi, ma come mai succede così?
grazie anticipate!