it-swarm.xyz

Как удалить папку, которая используется?

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

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

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

128
Factor Mystic

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

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

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


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

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

78
Marc Reside

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

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

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


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

enter image description here

170
bcorso

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

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

7
Brant Bobby

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

7
Joe

Этот сценарий 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\""
6
Robert Collier

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

5
kpoehls

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

Run dialog (or command Prompt):

  sc config AeLookupSvc start= demand
2
Synetech

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

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

2
tghw

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

handle64.exe -nobanner "<path>"

Например:

 command output from commandline

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

2
slolife

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

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

Имел файл docs.Zip, используемый WinSCP.

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

Удачи

0
Syed Mazhar

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

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

0
johan

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

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

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

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

0
rubynorails

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

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

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

0
Marco