SW_87
Messages postés56Date d'inscriptionmercredi 16 mars 2005StatutMembreDernière intervention 4 août 2005
-
21 juil. 2005 à 17:37
Chris_LaFouine
Messages postés109Date d'inscriptionmardi 13 avril 2004StatutMembreDernière intervention 4 juin 2008
-
26 juil. 2005 à 11:42
Bonjour ,
Je développe plusieurs petites applications en C# (asp.net) qui
écrivent et lisent dans des fichiers txt.
Malheureusement lorsque jécris où je lis, je ne contrôle pas
que le fichier soit occupé. Par conséquent, il arrive quune application
veuille accéder à un fichier déjà occupé et un message derreur apparaît :
« Le processus ne peut pas accéder au fichier
"C:\XXX.txt", car il est en cours d'utilisation par un autre
processus. »
Est-il possible de contrôler que le fichier ne soit pas en
cours dutilisation
Chris_LaFouine
Messages postés109Date d'inscriptionmardi 13 avril 2004StatutMembreDernière intervention 4 juin 2008 26 juil. 2005 à 11:42
Sinon, comment tu le parcours ton fichier?
Parce qu'une bonne solution est d'utiliser la classe FileStream. Tu
ouvres ton fichier texte avec le constructeur de FileStream(String
path)... Choisis le mode Append... et à la fin de ta procédure, tu
fermes ton FileStream... et tu fais ça pour chaque procédure...
Au moins, tu es sûr d'ouvrir un flux vers le fichier en question
puisqu'il est fermé à la fin de chaque procédure où tu y fais référence.
Par contre, fait gaffe au niveau des performances...
Fait pas un truc du style :
while(i<1000000000) {
fs=new FileStream("C:\\XXX.txt");
//Instructions...
fs.close();
i++;
}
C'est une énorme erreur à ne pas faire. Pense donc à fermer le fichier juste avant le '}' de la procédure!