Принудительное закрытие открытого файла с помощью C #

Я нашел похожий вопрос здесь , но он был закрыт / принят с ответом «не делай этого».

Я нахожусь в ситуации, когда мне все равно, что происходит с другими приложениями, я хочу взять файл, который может быть заблокирован другими (грубо при необходимости ) и по-моему. Мне может понадобиться переместить, переименовать или удалить этот файл.

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

Все это приводит к неразрешимой ситуации принудительного закрытия, поэтому я могу делать то, что мне нужно. У кого-нибудь есть идеи о том, что делать?

14
задан Community 23 May 2017 в 11:45
поделиться

2 ответа

Сначала вы можете использовать этот пост, чтобы убедиться, что их блокирует хитроумное приложение:

Как мне узнать, какой процесс блокирует файл с помощью .NET?

Тогда это сообщение описывает способ их закрытия:

http://social.msdn.microsoft.com/Forums/en-US/csharplanguage/thread/04a1e899-2a38-4d95-8ed5-6d53344e4d76

3
ответ дан 1 December 2019 в 16:31
поделиться

Возможно, это не имеет отношения к делу, и если это так, пожалуйста, прокомментируйте, но я уже использовал обходной путь в проводнике, чтобы обойти блокировку файлов.
Если файл был заблокирован процессом, который умер, Windows часто не позволяла удалить его, но если вы создавали новый файл с тем же именем в другом месте и перемещали его в папку, это удавалось. Затем можно было удалить новый файл, и все было в порядке.
Чтобы использовать это в своем приложении, вы должны иметь возможность читать файл и хранить его в памяти до того, как вы это сделаете, а затем записывать его обратно после того, как вы избавитесь от старого.
Возможно, это поможет, возможно, нет, но попробовать стоит.

2
ответ дан 1 December 2019 в 16:31
поделиться
Другие вопросы по тегам:

Похожие вопросы: