Я нашел похожий вопрос здесь , но он был закрыт / принят с ответом «не делай этого».
Я нахожусь в ситуации, когда мне все равно, что происходит с другими приложениями, я хочу взять файл, который может быть заблокирован другими (грубо при необходимости ) и по-моему. Мне может понадобиться переместить, переименовать или удалить этот файл.
В основном мне нужно обрабатывать файлы в каталоге, который создается приложением, которое не очищает его блокировки. Я знаю, что приложение выполняет обработку, когда мои звонки, но мне нужно убить замки, когда я бегу. Кроме того, мне кажется, что я конфликтую с чтениями из локального антивирусного программного обеспечения, сканирующими удаленный общий ресурс, где находится сервер.
Все это приводит к неразрешимой ситуации принудительного закрытия, поэтому я могу делать то, что мне нужно. У кого-нибудь есть идеи о том, что делать?
Сначала вы можете использовать этот пост, чтобы убедиться, что их блокирует хитроумное приложение:
Как мне узнать, какой процесс блокирует файл с помощью .NET?
Тогда это сообщение описывает способ их закрытия:
Возможно, это не имеет отношения к делу, и если это так, пожалуйста, прокомментируйте, но я уже использовал обходной путь в проводнике, чтобы обойти блокировку файлов.
Если файл был заблокирован процессом, который умер, Windows часто не позволяла удалить его, но если вы создавали новый файл с тем же именем в другом месте и перемещали его в папку, это удавалось. Затем можно было удалить новый файл, и все было в порядке.
Чтобы использовать это в своем приложении, вы должны иметь возможность читать файл и хранить его в памяти до того, как вы это сделаете, а затем записывать его обратно после того, как вы избавитесь от старого.
Возможно, это поможет, возможно, нет, но попробовать стоит.