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
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!