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

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

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

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

Войти через центр авторизации
Похожие вопросы
COSMOS Москва
от 110 000 до 140 000 руб.
Fastdev AB Ижевск
До 140 000 руб.
от 50 000 до 100 000 руб.
20 марта 2019, в 18:23
30 руб./за проект
20 марта 2019, в 18:21
100000 руб./за проект
20 марта 2019, в 18:11
100 руб./за проект