FileStream mit gesperrten Datei
Frage ich mich, ob es möglich ist, zu einem readonly-FileStream auf eine gesperrte Datei?
Bekomme ich jetzt eine exception wenn ich versuche zu Lesen, die gesperrte Datei.
using (FileStream stream = new FileStream("path", FileMode.Open))
Dank!
InformationsquelleAutor der Frage SaphuA | 2011-05-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie versuchen, einen anderen Konstruktor. Sie sind dokumentiert in der MSDN-Website.
Diese sieht aus wie eine Wette:
MSDN-Link
FileAccess
FileShare
InformationsquelleAutor der Antwort jgauffin
Wird der Standardwert für die FileShare-argument, FileShare.Lesen. Die bestreitet jeder Prozess, vom schreiben der Datei. Das kann nicht funktionieren, wenn ein anderer Prozess auf die Datei schreiben, kann man nicht leugnen, ein Recht, das wurde schon gewonnen.
Müssen Sie angeben, FileShare.ReadWrite. Das könnte noch nicht funktionieren, wenn der andere Prozess verwendet FileShare.Keine, keine Abhilfe. Vorsicht, der erste Lesezugriff auf eine Datei, die geschrieben wird, ist lästig, Sie nicht haben, eine zuverlässige end-of-file-Angabe. Der Letzte Datensatz oder Zeile in der Datei ist möglicherweise nur teilweise geschrieben.
InformationsquelleAutor der Antwort Hans Passant
Habe ich die folgenden, die funktioniert, sollte jedoch mit Vorsicht verwenden, da Datei kann geändert werden, während Sie es zu öffnen und durch einen anderen Prozess.
InformationsquelleAutor der Antwort Malcolm McCaffery
Können Sie einfach die unlock-Datei und Lesen Sie die Datei, nachdem es.
Verwenden Sie einfach Handle.exe von Sysinternals , oder Unlocker mit Kommandozeilen-Optionen.
Beide können die unlock-Datei , und führen Sie Sie aus Ihrem Programm einfach,
ohne Ihr Programm.
(Aber verwenden Sie Sie nicht für die Windows-SAM-Datei, es funktioniert nicht mit SAM 😉 )
Viel Glück !
InformationsquelleAutor der Antwort Searush