krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 2015
-
18 mai 2009 à 12:16
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 2015
-
19 mai 2009 à 12:46
Bonjour à toutes et à tous.
Grâce à la classe FileSystemWatcher, j'arrive sans problème à detecter quand un fichier est renommé, créé ou supprimé. Cependant, lorsqu'il est déplacé (même d'un dossier que je "surveille" à un autre que je "surveille" aussi), plutôt que de m'indiquer qu'il est renommé de C:\dossierA\monfichier.txt à C:\dossierB\monfichier.txt, il m'indique que le premier fichier est supprimé et le deuxième est créé.
Apparemment (et d'ailleurs c'est logique), les deux événements sont générés en même temps.
Ma question est la suivante :
Comment faire pour faire la différence entre un fichier déplacé et un fichier supprimé plus un fichier créé ?
Bon, c'est clairement du pseudo code, j'ai pas cherché à faire propre, c'est juste pour que vous comprenniez le principe. (le timer serait très court (quelques millisecondes))
Cependant, cette méthode ne me semble vraiment pas propre. Voyez-vous un autre moyen ?
Merci d'avance.
Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
rours
Messages postés61Date d'inscriptiondimanche 5 novembre 2000StatutMembreDernière intervention24 février 2010 19 mai 2009 à 12:17
En fait tu voudrais faire en sorte que si la création/suppression sont fait dans un délais ultra court (impossible pour un humain), et bien tu consideres cela comme un renommage ?
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 19 mai 2009 à 12:46
C'est à peu près ça (en vérifiant également que le nom du fichier est identique, car un programme pourrait supprimer un fichier et en recréer un dans un laps de temps aussi court).
Cette méthode doit marcher, théoriquement (pas encore testé), mais n'y a-t-il pas moyen, lorsque 2 événement sont levés au même moment, de détecter ça plus simplement ?
Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -