Wie der Titel schon sagt, versuche ich gleichzeitig in eine Datei zu lesen und zu schreiben. Ich habe dieses Thema recherchiert, aber die Antworten, die ich gefunden habe, scheinen wegen der Umstände in meinem Programm nicht für mich zu funktionieren. Ich verwende mehrere FileSystemWatchers, um eine große Anzahl von Dateien zu verfolgen, die ständig einen Fluss in meinem Netzwerk durchlaufen. Während die Dateien durch jeden Teil meines Flow laufen, wird eine Textdatei aktualisiert (eine Textdatei pro Stelle im Fluss), die den Namen der Datei und die Zeit angibt, in der sie im Ordner erstellt wurde. Es ist unberechenbar, wenn Dateien durchgehen und wenn sie in die Tracker-Textdateien schreiben. Mein Ziel ist es, in der Lage zu sein, gleichzeitig in die Datei zu lesen und zu schreiben, falls ein Benutzer versucht, aus einer Textdatei zu lesen, in die zur gleichen Zeit geschrieben wird. Wie würde ich das erreichen?Verwenden von TextWriter mit StreamWriter und gleichzeitiges Lesen/Schreiben
//Write to File
private void WriteToFile(string info,string path,string tr)
{
if (!File.Exists([email protected]"\"[email protected]))
{
var myFile =
File.Create(path + @"\" + @tr);
myFile.Close();
TextWriter tw = new StreamWriter(path + @"\" + @tr, true);
tw.WriteLine(info,true);
tw.Close();
}
else if (File.Exists(path + @"\" + @tr))
{
TextWriter tw = new StreamWriter(path + @"\" + @tr, true);
tw.WriteLine(info);
tw.Close();
}
}
Können Sie bitte den Code, der für das Lesen der Datei verantwortlich ist, zu Ihrer Frage hinzufügen? Vielen Dank! – Snoopy
Wenn Sie FileStream verwenden, können Sie einen Teil der Datei https://msdn.microsoft.com/en-us/library/system.io.filestream.lock sperren oder die Option FileShare.None verwenden – Slai