Как узнать доступен ли файл для открытия и записи?

220
12 июля 2017, 22:19

Есть папка в сети, в которой периодически создаются файлы. Есть необходимость копировать данные файлы в другой каталог. Нужно проверять, доступен ли файл для копирования, т.е. не дописывается ли он. Есть ли возможность проверить доступен ли файл для записи?

Answer 1

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

Answer 2

Вот готовый проект. Все делается через системный openfiles.exe который находится в c:\Windows\System32

Он поддерживает множество операций таких как закрытие файла, запросы и т.д.

READ ALSO
Как добавить текст под изображение?

Как добавить текст под изображение?

Нужно реализовать что то типо этого:

165
Как можно сократить подобный код или вовсе от него избавится?

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

Имею ряд кнопок, которые переключают страницу приложенияУ кнопок есть 2 состояния, нажатая и нет, для каждого состояния реализован стиль...

196
как получить длступ к xaml из своего класса?

как получить длступ к xaml из своего класса?

Как получить доступ элементам MainPagexaml из созданного мной класса?

164
Почему Bower выдает ошибку “throw error;”?

Почему Bower выдает ошибку “throw error;”?

У меня есть проект, который находиться на диске "E" и bower работает отлично

281