|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Aug 2011
Messaggi: 5
|
[C#] filewatcher considera duplica gli eventi
Buongiorno a tutti,
sto scrivendo (grazie al suggerimento di gugoXX) un 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
}
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ì? |
|
|
|
|
|
#2 |
|
Member
Iscritto dal: Nov 2009
Messaggi: 56
|
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.
__________________
Un elemento come me quando si fissa fa sempre un gran casino, ma solo nel 45 ciò è stato negativo . Little Boy era mio nonno |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Aug 2010
Messaggi: 264
|
penso che se vuoi solo triggare l'evento che viene postato quando modifichi un file (nel tuo caso lo sovrascrivi) ti basti usare il filtro NotifyFilters.LastWrite
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:32.



















