seblx
Messages postés11Date d'inscriptionvendredi 10 novembre 2000StatutMembreDernière intervention22 mars 2006
-
21 mai 2005 à 21:06
seblx
Messages postés11Date d'inscriptionvendredi 10 novembre 2000StatutMembreDernière intervention22 mars 2006
-
22 mai 2005 à 16:59
Bonjour,
J'essaye de lister dans un log la création de fichier dans un répertoire donné
avec la classe FileSystemWatcher. Tout va bien sauf quand je copie
trop de fichier d'un coup dans le répertoire. A ce moment, ça ne marche plus il
manque des événements dans mon log...
Jai regardé différent exemple sur le net dont celui-ci http://www.codeproject.com/csharp/DirectoryMirror.asp qui sert a faire un répertoire miroir. Eh bien, ça ne fonctionne pas si on
copie trop de fichier dun coup.
Lutinore
Messages postés3246Date d'inscriptionlundi 25 avril 2005StatutMembreDernière intervention27 octobre 201241 22 mai 2005 à 07:04
C'est surement une "buffer overflow error" ca signifie que ton buffer en memoire est trop petit pour contenir tout les evenements generes et il deborde.. Mets les proprietes "NotifyFilters" et "IncludeSubdirectories" au minimum et augmente la taille du buffer avec la propriete "InternalBufferSize".. L'erreur ne peut pas etre attrapee dans un try/catch mais elle peut l'etre dans l'evenement Error de FileSystemWatcher..
seblx
Messages postés11Date d'inscriptionvendredi 10 novembre 2000StatutMembreDernière intervention22 mars 2006 22 mai 2005 à 16:59
Bon en doublant le buffer de FileSystemWatcher, je peux en effet augmenter le nombre de fichier copiés en une fois. Le site de Microsoft indique quavec 4 ko on peut suivre 80 fichiers. Mais si on ne connait pas le nombre de fichiers dans le répertoire étudie quelle taille mettre?
Car finalement, des quon dépasse la taille du buffer, lapplication utilisant cette classe ne fonctionne plus. Ce nest pas très robuste