Dies hat alles mit der Sperre und der Freigabesemantik zu tun, die Sie beim Öffnen der Datei anfordern.
Anstatt die Abkürzung zu wählen File.ReadAllText()
versuchen Sie die Verwendung eines System.IO.FileStream
y un System.IO.StreamReader
/ System.IO.StreamWriter
.
So öffnen Sie eine Datei:
using (var fileStream = new FileStream(@"c:\myFile", FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
using (var streamReader = new StreamReader(fileStream))
{
var someText = streamReader.ReadToEnd();
}
Beachten Sie die FileShare.ReadWrite
- Damit wird der Stream angewiesen, die Weitergabe an andere Leser oder Autoren zu erlauben.
Versuchen Sie zum Schreiben etwas wie
using (var fileStream = new FileStream(@"c:\myFile", FileMode.Create, FileAccess.Write, FileShare.Read))
using (var streamWriter = new StreamWriter(fileStream))
{
streamWriter.WriteLine("some text");
}
Beachten Sie die FileShare.Read
- Damit wird dem Stream mitgeteilt, dass die Freigabe nur für Leser möglich ist.
Schauen Sie sich die System.IO.FileStream
und seine Konstruktorüberladungen, und Sie können genau festlegen, wie es sich verhält, um Ihren Zweck zu erfüllen.