Есть папка в сети, в которой периодически создаются файлы. Есть необходимость копировать данные файлы в другой каталог. Нужно проверять, доступен ли файл для копирования, т.е. не дописывается ли он. Есть ли возможность проверить доступен ли файл для записи?
Наиболее трезвый, на мой взгляд, способ понять занят ли файл другим процессом - это попытаться скопировать его и получить System.IO.IOException в случае ошибки ввода-вывода, которая как раз таки и будет возникать при отсутствии к нему доступа. Попытки реализовать метод что бы проверить блокирован файл или нет особого результата не дадут. Поскольку никто не гарантирует, что в промежутке между вызовом метода проверки на блокировку и копированием файла ни какой другой процесс его уже не занял.
Вот готовый проект.
Все делается через системный openfiles.exe который находится в c:\Windows\System32
Он поддерживает множество операций таких как закрытие файла, запросы и т.д.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости