2016-10-09 5 views
0

Я занимаюсь созданием приложения, которое непрерывно записывает данные в файл. Когда я запускаю программу, файл создается и начинает записываться.
Однако я заметил, что иногда, если у меня Windows Explorer открыт, доступ к файлу отклоняется моему приложению, и возникает ошибка.
Ограничить доступ к определенному файлу из других программ и пользователей во время работы

fs = new System.IO.FileStream(location, 
           System.IO.FileMode.Open, 
           System.IO.FileAccess.Write, 
           System.IO.FileShare.ReadWrite); 

Так как ограничить доступ к этому файлу, так только мое приложение может получить к нему доступ, а не какие-либо другие программы?

+1

_ "и ошибка брошена" _ - какая ошибка? – MickyD

+0

Невозможно запомнить точную ошибку, но ее близок к «Доступ к файлу отрицается». –

ответ

1

Вы можете изменить последний параметр от System.IO.FileShare.ReadWrite до System.IO.FileShare.None.

Это блокирует файл в location исключительно до тех пор, пока этот поток открыт, и никакое другое приложение не может читать, изменять или удалять этот файл, кроме вашего собственного FileStream.

На самом деле это относится не только к другим приложениям - даже ваше собственное приложение не может открыть другое FileStream этого файла. Поэтому держите его открытым до тех пор, пока вам нужно, но не забывайте правильно утилизировать FileStream после использования.