質問

Windowsサービスから書くためにファイルをロックしたいのですが、これまでのところ、ロックを取得しようとする私の試みは機能していません。ただし、同じコードがコンソールアプリケーションから機能します。

私が読んだことから、これはからです 日和見ロック 私のサービスのために有効にされていません。

レジストリハックに頼らずにサービスからロックすることでファイルが書き込みを防ぐにはどうすればよいですか?

ロックするコード:

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

ロックを解除するコード:

lockStream.Close();
lockStream.Dispose();
役に立ちましたか?

解決

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

読み取りまたは書き込みのためにファイルを開くときにFileshareモードを使用しましたか?

他のヒント

使う グローバルミューテックス それをリリースするように非常に注意してください(最終的になど)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top