Ceci est tout à voir avec la sémantique de verrouillage et de partage que vous demandez lors de l'ouverture du fichier.
Au lieu d'utiliser l'approche de raccourci de File.ReadAllText()
, essayez de regarder en utilisant un System.IO.FileStream
et un System.IO.StreamReader
/System.IO.StreamWriter
.
Pour ouvrir un fichier:
using (var fileStream = new FileStream(@"c:\myFile", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
using (var streamReader = new StreamReader(fileStream))
{
var someText = streamReader.ReadToEnd();
}
Notez le FileShare.ReadWrite
- cela dit le flux pour permettre le partage soit à d'autres lecteurs ou d'autres écrivains.
Pour l'écriture essayer quelque chose comme
using (var fileStream = new FileStream(@"c:\myFile", FileMode.Create, FileAccess.Write, FileShare.Read))
using (var streamWriter = new StreamWriter(fileStream))
{
streamWriter.WriteLine("some text");
}
Notez le FileShare.Read
- cela dit le flux pour permettre le partage aux lecteurs seulement. Avoir une lecture autour du System.IO.FileStream
et de ses surcharges de constructeur et vous pouvez adapter exactement comment il se comporte en fonction de votre objectif.
Votre deuxième bloc de code dit 'FileShare.Read', pas' FileShare.Write' –
@Matt Ellen. Corrigé - merci. –