Sperren Datei aus Windows-Dienst für das Schreiben
-
27-09-2019 - |
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();
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