keikun59
Messages postés73Date d'inscriptionmardi 15 mars 2005StatutMembreDernière intervention18 novembre 2010
-
29 avril 2006 à 15:02
keikun59
Messages postés73Date d'inscriptionmardi 15 mars 2005StatutMembreDernière intervention18 novembre 2010
-
8 mai 2006 à 23:42
Bonjour,
Je faisais joujou avec .net et je me suis dis, je vais tester la surveillance de fichiers/dossiers.
J'utilise la class FileSystemWatcher, avec celle-ci je regarde surveille les fichiers dans un dossier.
Quand le fichier est modifié, un événement appel la méthode copie(...). Ce que je ne comprend pas est pourquoi celle-ci est appelé 3 fois de suite avec que je n'enregistre les modification qu'une seule fois (j'utilise le notepad pour modifier le fichier surveillé)
cs_Willi
Messages postés2375Date d'inscriptionjeudi 12 juillet 2001StatutModérateurDernière intervention15 décembre 201822 1 mai 2006 à 22:17
Salut,
J'ai eu ce problème et je l'ai résolu en arrêtant la surveillance et en la redémarrant une fois le 1er déclenchement de l'event changed ou renamed peut importe.
Essais en rajoutant à la fin de ta méthode copie ceci:
fileSystemWatcher.EnableRaisingEvents = false
System.Threading.Thread.Sleep(500)
fileSystemWatcher.EnableRaisingEvents = true
keikun59
Messages postés73Date d'inscriptionmardi 15 mars 2005StatutMembreDernière intervention18 novembre 20101 8 mai 2006 à 22:51
Bonjour,
Tout d'abord merci pour ta réponse. Mais le but du programme est de surveiller et si je mets en pause la surveillance, cela perd de son intérêt car je peux louper un événement.
cs_Willi
Messages postés2375Date d'inscriptionjeudi 12 juillet 2001StatutModérateurDernière intervention15 décembre 201822 8 mai 2006 à 23:05
Je ne vois pas en quoi tu va louper quelques choses....
J'ai mis un sleep entre l'arret et le démarrage de l'instance mais ce n'est pas obligatoire...tu auras le meme résultat sans
Entre le moment où EnableRaisingEvents passe à false puis à true, la surveillance est à l'arrêt.
Donc si un fichier est modifié, supprimé, créé, l'événement ne va pas s'éxécuter donc je peux pendant ce court instant louper un événement.
keikun59
Messages postés73Date d'inscriptionmardi 15 mars 2005StatutMembreDernière intervention18 novembre 20101 8 mai 2006 à 23:42
Tout à fait, mais, je prend le cas extrem, si on te demande de développer une application qui ne te permet pas de louper un événement. Je vais utiliser ta technique dans mon cas mais je me pose des questions sur le vrai sens de se comportement du framework.