2010-04-15 5 views
0

Il semble que FileSystemWatcher déclenche des événements plusieurs fois. Voici mes paramètres;Problème (s) de déclencheur d'événement FileSystemWatcher

watcher = new FileSystemWatcher(); 
watcher.Path = @"D:\testSpace"; 
watcher.InternalBufferSize = 1024*64; 
watcher.Deleted += Triggered; 
watcher.Changed += Triggered; 
watcher.Created += Triggered; 
watcher.Error += ErrorOccured; 
watcher.NotifyFilter = NotifyFilters.LastWrite; 
watcher.IncludeSubdirectories = true; 

watcher.EnableRaisingEvents = true; 
  • Si vous modifiez un document, un événement a changé le document déclenché deux fois.

  • Nouvel événement créé de dossier ne se déclenche pas à moins qu'un nouveau fichier créé sous le dossier.

  • événement supprimé ne se déclenche pas (changement essayé d'utiliser aussi bien supprimer)

-vous les gars savent tout travail autour de ces questions?

+1

Vous ne dites pas quels événements se déclenchent deux fois. – spender

+1

Fixez votre valeur NotifyFilter. –

Répondre

3

FileSystemWatcher:

opérations du système de fichiers commun peut augmenter plus d'un événement. Par exemple, lorsqu'un fichier est déplacé d'un répertoire vers un autre, plusieurs événements OnChanged et OnCeled peuvent être déclenchés. Le déplacement d'un fichier est une opération complexe qui consiste en plusieurs opérations simples , ce qui génère plusieurs événements . De même, certaines applications (par exemple, un logiciel antivirus) peuvent provoquer des événements système supplémentaires détectés par FileSystemWatcher.

La solution à votre 1er problème est décrite dans le lien.

+0

Cher Monsieur, Vous pourriez peut-être jeter un oeil à ma question concernant votre réponse, http://stackoverflow.com/questions/7184472/fileinfo-exceptions. Merci d'avance – Derek