Question

Je veux verrouiller un fichier pour l'écriture d'un service Windows, mais jusqu'à présent, mes tentatives pour obtenir un verrouillage ne fonctionnent pas. Les mêmes œuvres de code d'une application console, cependant.

D'après ce que j'ai lu, c'est parce que verrouillage opportuniste n'est pas activé mon service .

Comment puis-je empêcher un fichier d'être écrit par le verrouillant d'un service sans avoir recours à hacks de registre?

Code pour verrouillage:

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

code pour déverrouiller:

lockStream.Close();
lockStream.Dispose();
Était-ce utile?

La solution

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

Avez-vous utilisé le mode FileShare lorsque vous ouvrez le fichier pour la lecture ou l'écriture?

Autres conseils

Utilisez un mondial Mutex faisant très attention à libérer (Enfin, etc.)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top