2 Stimmen

Wie kann ich den Zugriff auf eine Datei sperren, wenn ein Benutzer sie geöffnet hat?

Ich schreibe ein C#.NET-Programm, das XmlSerializer verwendet, um das Projekt, an dem der aktuelle Benutzer arbeitet, in und aus einer XML-Datei zu serialisieren und zu deserialisieren. Das funktioniert gut, aber ich versuche, einen Weg zu finden, um zu verhindern, dass zwei Benutzer dieselbe Datei von einem Netzlaufwerk öffnen und ein Benutzer die Speicherung des vorherigen Benutzers überschreibt. Ich möchte im Wesentlichen das Verhalten, das MS Word hat: Wenn das Programm keinen Schreibzugriff auf eine Datei erhalten kann, wenn sie geöffnet wird, öffnet es die Datei in einem Nur-Lese-Modus.

Wie sperre ich also den Zugriff auf eine Datei? Lasse ich einfach ein File-Stream-Objekt offen und behalte einen Verweis darauf? Verwende ich weiterhin dasselbe Dateistromobjekt für alle Zwischenspeicherungen, anstatt sie für jede Speicherung zu öffnen und zu schließen? Oder gibt es eine andere Möglichkeit, den Zugriff auf eine Datei zu sperren?

Wie kann ich außerdem sicherstellen, dass die Datei auch dann freigegeben wird, wenn meine Anwendung abstürzt? Wäre dies ein guter Fall, um IDisposable zu implementieren?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X