锁定文件以便从Windows服务写入

时间:2010-11-23 12:17:00

标签: c# windows-services file-locking

我想锁定一个文件以便从Windows服务写入,但到目前为止,我尝试获取锁定无效。但是,相同的代码可以从控制台应用程序中运行。

据我所知,这是因为opportunistic locking未启用我的服务。

如何通过从服务锁定文件而不诉诸注册表黑客来阻止文件被写入?

要锁定的代码:

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

要解锁的代码:

lockStream.Close();
lockStream.Dispose();

2 个答案:

答案 0 :(得分:1)

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

打开文件进行读写时,您是否使用过FileShare模式?

答案 1 :(得分:0)

使用Global Mutex非常小心地释放它(最后等等)