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

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

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

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

Войти через TM ID
Похожие вопросы
Континент Москва
До 160 000 руб.
Faradise Москва
от 120 000 до 120 000 руб.
R-telematica Start Москва
от 160 000 руб.
14 дек. 2018, в 00:12
1300 руб./за проект
13 дек. 2018, в 21:54
5000 руб./за проект