Frage

Ich mag eine Datei sperren, um von einem Windows-Dienst zu schreiben, aber so weit meine Versuche, eine Sperre zu erhalten arbeiten nicht. Der gleiche Code funktioniert von einer Konsole-Anwendung, though.

Von dem, was ich gelesen habe, ist dies, weil Opportunistic Locking nicht für meinen Dienst aktiviert ist .

Wie kann ich verhindern, dass eine Datei von geschrieben wird, indem sie von einem Dienst Sperre ohne Registry-Hacks zurückgreifen?

Code sperren:

FileStream lockStream = new FileStream(path, FileMode.Open, FileAccess.Read);

-Code zu entsperren:

lockStream.Close();
lockStream.Dispose();
War es hilfreich?

Lösung

  using (fs = new FileStream("somefile.txt", FileMode.Open, FileAccess.Read, FileShare.None))
  { }

Haben Sie den Fileshare-Modus verwendet, wenn Sie die Datei zum Lesen oder Schreiben geöffnet?

Andere Tipps

Verwenden Sie einen globalen Mutex ist sehr vorsichtig loslassen (schließlich usw.)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top