Ich versuche eine Datei zu öffnen bzw zu lesen die jedoch von einem anderen Prozess verwendet wird (Exception: "Der prozess kann nicht auf die datei zugreifen da sie von einem anderen prozess verwendet wird.")
Es ist mir bewusst das ich erst diesen Prozess (meist StreamWriter/Reader o.ä.) schließen müsste, um die Datei wieder zu öffnen und auszulesen. In diesem fall versuch ich jedoch gezielt die Datei zu öffnen obwohl sie von einem anderen Prozess verwendet wird (Datei wird dauerhaft durch einen Dienst geändert).
Meine Frage ist nun: Ist es möglich diese Datei zu öffnen/lesen obwohl sie von einem anderen Prozess verwendet wird? (wenn ja, bitte lösung Posten)
Ich habe bisl im Internet gesucht und die FileStream Klasse gefunden die als Parameter z.B. "FileShare" übernimmt und ebenso die Methode "Unlock" besitzt (Description: "Ermöglicht anderen Prozessen den Zugriff auf die gesamte Datei oder einen Teil der Datei, die zuvor gesperrt war."). Ich teste momentan noch so das ich eben durch StreamWriter in eine Datei schreibe und ohne diese Klasse zu schließen, versuche danach auf die von der Klasse geöffneten Datei zuzugreifen; jedoch wollen all meine Versuche nicht hinhaun und ebenso gibt's kein vergleichbares Beispiel im Internet zu finden, was den selben vorgang zeigt.
Bitte also um Hilfe, wenn es möglich ist und wenn eben FileStream (Unlock) dafür zum einsatz kommt (wäre logisch) dann bitte Beispiel Posten. Danke.
wow, danke, gleich das erste gefundene Beispiel hat funktioniert. Obwohl ich sagen muss das ich nah dran war:
Dabei hätt ich einfach nur "ReadWrite" bei FileShare nutzen müssen. >.<
Nochmal danke, werd' deine Antwort später als 'hilfreichste Antwort' auszeichnen ;)
Na immer doch gerne behilflich unter Kollegen ;)
nur mal als Hinweis für die Zukunft:
das klappt bei dir nur, weil der andere Prozess die Datei nicht mit ShareDenyRead aufgemacht hat. Damit würde der andere Prozess ein paralleles Lesen verbieten.
gruss, dj
Jo, aber dann dürfte eh Hopfen und Malz verloren sein.