Smagjus
Vice Admiral
- Registriert
- Feb. 2011
- Beiträge
- 6.146
Hallo,
ich wende mich nochmal an euch: Ein fremdes Programm schreibt regelmäßig in eine Logdatei, welche ich via C# auslesen möchte. Notepad kann diese problemlos öffnen UND lesen, also sollte sich das via C# doch auch einrichten lassen oder?
Der Code dient erstmal nur zu Testzwecken. Die Datei lässt sich dank FileShare.ReadWrite schon einmal öffnen. Allerdings bekomme ich beim Leseversuch die Ausnahme:
Wenn aber Notepad mir die gesamte Datei anzeigt, dann müsste ich das doch auch bekommen? Tatsächlich bekomme ich aber nur das Testbyte angezeigt, wenn das externe Programm nicht läuft.
Wo ist der Denkfehler?
ich wende mich nochmal an euch: Ein fremdes Programm schreibt regelmäßig in eine Logdatei, welche ich via C# auslesen möchte. Notepad kann diese problemlos öffnen UND lesen, also sollte sich das via C# doch auch einrichten lassen oder?
Code:
static void Main(string[] args) {
var stream = File.Open(FileName, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
var sr = new StreamReader(stream);
Console.WriteLine(sr.Read());
Console.Read();
}
Der Code dient erstmal nur zu Testzwecken. Die Datei lässt sich dank FileShare.ReadWrite schon einmal öffnen. Allerdings bekomme ich beim Leseversuch die Ausnahme:
Code:
Der Prozess kann nicht auf die Datei zugreifen, da ein anderer Prozess einen Teil der Datei gesperrt hat.
Wo ist der Denkfehler?