Задать вопрос

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

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

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

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

Похожие вопросы