Как заблокировать файл для других процессов на время работы программы?

Имеется конфигурационный .json-файл, и есть приложение, зарегистрированное в качестве windows-службы, которое этот файл считывает и десериализует. Необходимо на время работы службы сделать этот файл недоступным для редактирования, переименования и удаления другим процессом.
Пробовал открывать файл через
var fileStr = File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.None);

без последующего закрытия, но не помогло, файл все равно редактируется и сохраняется. Также пробовал оборачивать поток в специальный класс ( https://github.com/colgreen/Redzen/blob/master/Red... ), и это решение оказалось безуспешным.
  • Вопрос задан
  • 415 просмотров
Пригласить эксперта
Ответы на вопрос 4
@ilya06 Автор вопроса
Проблема была в том, что файл открывался в методе класса и присваивался локальной переменной. Была решена переносом переменной на уровень экземпляра класса.
Ответ написан
А если FileAccess.ReadWrite сделать? Потому как должно и в вашем варианте все работать
Ответ написан
  1. Запускать службу от специального пользователя.
  2. Дать пользователю права на редактирование этого файла, а остальным запретить
Ответ написан
sanchezzzhak
@sanchezzzhak
Ля ля ля...
FileStream.Lock()
пока прога работает и фаил на локе запись в файл может только ваш процесс, вот прочитать лоченый файл может любой.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
Payment Systems Москва
от 160 000 до 200 000 руб.
Wallet One Чебоксары
от 90 000 до 150 000 руб.
Wallet One Москва
от 100 000 до 190 000 руб.