Вопрос

Я хочу заблокировать файл для записи из службы 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, когда вы открываете файл для чтения или записи?

Другие советы

Использовать Global Mutex. быть очень осторожным, чтобы освободить его (наконец и т. Д.)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top