Преодоление Это используется другим человеком или программой.

Есть ли способ разблокировать файлы Windows без загрузки утилиты?

У меня есть несколько файлов на моем диске Windows XP C:, которые очень старые и очень бесполезные. Когда я пытаюсь удалить эти файлы, я получаю следующее сообщение:

Cannot delete FILENAME.zip: It is being used by another person or program

Close any programs that might be using the file and try again.

Никто не обращается к этому файлу. Ни одна программа не использует его в настоящее время. Windows испортила механизм блокировки файлов.

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

Как вы могли заставить файл разблокироваться из программы? Я компетентен в Java, Perl и Ruby, но я не видел среди их библиотек ничего, что могло бы мне здесь помочь.


person Adrian Dunston    schedule 23.10.2008    source источник
comment
Вопрос был закрыт как не связанный с программированием. Я снова открыл и добавил строку внизу, чтобы это не повторилось.   -  person Joel Coehoorn    schedule 23.10.2008
comment
Поскольку он не просит программируемого решения, вам не кажется, что это немного неискренне? Если вы считаете, что было бы полезно обсудить обнаружение программных блокировок файлов, разве это не должно быть отдельным вопросом?   -  person EBGreen    schedule 23.10.2008
comment
Я закрыл вопрос, потому что SO не для ИТ-вопросов. Редактирование изменило смысл автора, чего редактирование делать не должно.   -  person John Topley    schedule 23.10.2008
comment
Спасибо за повторное открытие/редактирование. Я понимаю, что это не вопрос программирования как таковой. Но возня с процессами Windows и блокировками файлов имеет гораздо больше общего с работой по разработке, чем с вопросами о том, что вам больше всего нравится (мультфильм программиста|клавиатура|футболка)?   -  person Adrian Dunston    schedule 23.10.2008
comment
Это определенно вопрос, связанный с программированием. Существует много сценариев, в которых эта проблема может возникнуть во время разработки, например, при тестировании установщиков или плагинов. Тот факт, что вопрос не оформлен как сценарий программирования, не означает, что это неправильный вопрос SO.   -  person Dan Goldstein    schedule 23.10.2008


Ответы (8)


Я успешно использовал Process Explorer, чтобы узнать, в каком процессе открыт файл. Это спасает от перезагрузки, которая в любом случае может не решить проблему.

В проводнике процессов: Найдите › Handle или DLL..., затем найдите имя папки/файла, затем дважды щелкните один из результатов поиска. Он выберет дескриптор в главном окне, которое вы можете щелкнуть правой кнопкой мыши и закрыть.

person Dan Goldstein    schedule 23.10.2008
comment
Еще один шаг вперед с Process Explorer: после использования окна Find Handle или DLL дважды щелкните один из результатов поиска. Он выберет дескриптор в главном окне, которое вы можете щелкнуть правой кнопкой мыши и закрыть. - person David Grant; 23.10.2008
comment
В его первоначальном вопросе говорилось, что он не хочет загружать сторонний инструмент. - person Brian Schmitt; 23.10.2008
comment
Что ж, если он думает, что сайт Microsoft, с которого вы можете загрузить это, по его словам, является Sketchy (по его словам, он не хочет скачивать), то я сомневаюсь, что он все равно поверил бы какому-либо другому совету. - person EBGreen; 23.10.2008
comment
Это не сторонний инструмент. Он опубликован Microsoft. - person Dan Goldstein; 23.10.2008
comment
Функция управления файлами в Process Explorer действительно крутая. - person Real Red.; 18.05.2010
comment
В проводнике процессов: Найдите › Handle или DLL... затем найдите имя папки/файла и закройте процесс, которому он принадлежит. - person Ben Haley; 07.03.2012

Попробуйте скачать "Unlocker". Погуглите и поверьте мне, что в нем нет червя/шпионского ПО/вируса. Это довольно крутая утилита и прекрасно работает. Попробуйте.

person Pradeep    schedule 23.10.2008

Вы пробовали использовать команду командной строки OpenFiles?

Он встроен (полагаю, XP и выше) и имеет несколько аргументов, которые можно передать.

person Brian Schmitt    schedule 23.10.2008

Используйте msconfig и запустите все с выключенным.

Затем попробуйте переместить/удалить файл.

Или вы всегда можете загрузиться в безопасном режиме и удалить его.

Вы делаете это, нажимая f8, когда машина загружается.

person branchgabriel    schedule 23.10.2008

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

person EBGreen    schedule 23.10.2008

Перезагрузка в безопасном режиме часто является очень простым способом сделать это. Когда вы загружаетесь в безопасном режиме, он не загружает все, что установлено для запуска при запуске. Нажмите F8 во время загрузки, чтобы получить доступ к меню загрузки, и выберите «безопасный режим».

person MrZebra    schedule 23.10.2008

У меня был файл .jpg с этой проблемой, и я не мог его удалить. Это привело меня к этой теме. Когда ничего не помогло, я переименовал файл и оставил .jpg. ТОГДА я мог бы легко удалить его. Не знаю почему, но у меня сработало

person Steve    schedule 27.08.2012

Вам не нужна никакая утилита. Просто используйте API Win32, чтобы разблокировать их (просто закройте дескриптор)

person Community    schedule 24.10.2008