124

Иногда, когда я работаю в Windows, я получаю это приглашение при попытке удалить каталог:

Folder In Use
The action can't be completed because the folder is open in another program
Close the folder and try again.

Однако папка вообще не "используется", и у меня ее нет. Так как я могу удалить его до перезагрузки?

18 ответов18

166

Есть родной графический интерфейс для Windows:

Пуск >> Все программы >> Стандартные >> Системные инструменты >> Монитор ресурсов (или Запустите resmon.exe)

Вы можете выполнить поиск "Связанных дескрипторов" с помощью окна поиска (обведено красным) и щелкните правой кнопкой мыши процесс, который хотите завершить.


Как пример, на изображении ниже я не могу удалить свой каталог Eclipse. Поиск связанных с Eclipse дескрипторов показал, что adb.exe имеет дескриптор каталога. После завершения процесса adb я мог бы удалить каталог Eclipse.

78

Этот ответ старый, но, похоже, все еще получает трафик. Как отмечено ниже, в Windows теперь есть встроенный инструмент:

Пуск → Все программы → Стандартные → Системные инструменты → Монитор ресурсов (или Запустите resmon.exe)

Вы можете получить больше информации в ответах ниже этого. Остальная часть этого ответа больше не актуальна.


Process Explorer от Sysinternals позволит вам осуществлять поиск по ручкам и библиотекам DLL. Найдите каталог и выясните, какой процесс "использует" эту папку.

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

7

При использовании инструментов, которые принудительно закрывают дескрипторы файлов (например, ранее упомянутый Unlocker), имейте в виду, что это может вызвать серьезные проблемы. (См. Эту статью Раймонда Чена.) Убедитесь, что вы знаете, какие приложения используют файл, и что ни одно из них не делает ничего важного.

Безопаснее сначала попытаться закрыть приложения, а не просто принудительно закрывать ручку.

7

Unlocker и WhoLockMe не работают на 64-битной Windows. Я использую LockHunter.

6

Этот сценарий REG даст вам пункт контекстного меню "Просмотр дескрипторов", вызываемый правой кнопкой мыши, который вызовет утилиту дескрипторов Sysinternals, чтобы увидеть все открытые дескрипторы файла или папки, по которым вы щелкнули правой кнопкой мыши.

Поместите файл handle.exe из Sysinternals в папку, доступную по вашему пути.

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\Handle]
@="View &Handles"

[HKEY_CLASSES_ROOT\AllFilesystemObjects\shell\Handle\command]
@="cmd.exe /k handle -a -u \"%1\""
5

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

3

Самый быстрый и простой подход состоит в том, чтобы использовать Handle, как уже упоминалось в slolife, а не в Process Explorer. Они оба от Марка Руссиновича @ Microsoft.

Не удивляйтесь, обнаружив, что explorer.exe является виновником, как я сделал сегодня. По-видимому, существует официальный способ перезапустить explorer.exe, но мне кажется, что он убивает его и снова запускает его снова в Диспетчере задач.

2

Если под «не используется» вы имеете в виду отсутствие открытых дескрипторов, убедитесь, что служба Application Experience не отключена. Если это так, установите его вручную:

Run dialog (or command prompt):

  sc config AeLookupSvc start= demand
2

Когда я работал на XP, я использовал WhoLockMe, чтобы узнать, в каких программах открыты и заблокированы файлы. Самая последняя версия, которую я смог найти, не упоминает Vista, но она того стоит.

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

2

Я использую Handle от SysInternals (сейчас Microsoft). Вы можете ввести часть имени папки, чтобы увидеть, какой процесс имеет дескриптор этой папки, а затем убить дескриптор.

handle64.exe -nobanner "<path>"

Например:

вывод команды из командной строки

Как уже упоминалось, убийство ручки может вызвать серьезные проблемы.

2

Чтобы удалить папку / программу, которая говорит, что вы не можете удалить ее, потому что она открыта где-то еще.

  • Нажмите кнопку Пуск
  • Тип Taskmgr
  • В открывшемся новом окне на вкладке процесса найдите папку / программу, которую вы пытаетесь удалить.
  • Щелкните правой кнопкой мыши и завершите задачу
  • Вернитесь в папку / папку программы, и вы сможете удалить ее сейчас
0

Был файл docs.zip в использовании WinSCP.

  1. Я создал новый файл с тем же именем docs.zip
  2. Вставка поверх существующего файла docs.zip, и старый файл заменяется новым файлом с таким же именем.
  3. Затем я удалил только что скопированный файл docs.zip.

Удачи

0

Попробуйте Ctrl + Shift + Esc > "Программы", затем щелкните правой кнопкой мыши ту, которую хотите деактивировать, и выберите "Деактивировать". Затем удалите его снова!

(Моя ОС на шведском языке, поэтому переводы могут не совпадать! но вы поняли!)

0

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

Я использовал Python. Я знаю, я знаю, это не является родным для Windows, но это очень распространенная утилита для системных администраторов, разработчиков и суперпользователей, и вы можете избавиться от этого с помощью простого oneliner:

from shutil import rmtree; rmtree('C:\path\to\folder')

... Бинго Банго.

0

У меня была такая же проблема с флэш-памятью (16 ГБ - не имеет значения, вероятно), и это не позволило мне удалить папку. Я перепробовал каждое -freaking- решение, найденное в интернете (скрытие миниатюр, удаление папки из командной строки cmd с выключенным explorer.exe, все ..), и ничего не получалось. Что заставило это работать? Ну, это:

  1. Выберите все файлы в папке
  2. Нажмите на них правой кнопкой мыши и выберите "Cut"
  3. Вернуться в корневую папку
  4. Вставьте их
  5. Удалить их

Это прекрасно сработало для меня. Надеюсь, я помог. :-)

-1

Часто дескриптор, который заблокирован, является Internet Explorer, я либо закрываю его в диспетчере задач, затем удаляю файл или папку, либо закрываю проводник ... часто в папке есть открытый текстовый TXT-файл, и это будет дескриптор, который выиграл ' не позволяйте удалять папки / файлы ... просто закройте текстовый файл и тогда все будет в порядке, теперь вы можете удалить свою папку.

-3
  1. Найдите файл, который вы хотите удалить.

  2. Переименуйте его во что угодно.

  3. Удали это.

-3

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .