Невозможно удалить пустую папку, потому что она используется

48

Я пытаюсь удалить пустую папку, но не могу, потому что в диалоговом окне Windows говорится, что она используется в данный момент.

Как можно использовать пустую папку? Как я могу решить эту проблему без перезагрузки компьютера или выхода из системы?

черный
источник
6
Вам нужно будет перезагрузить систему, чтобы удалить папку. Вам нужно будет определить, какой процесс препятствует удалению папки.
Ramhound
29
Всегда стоит быстро проверить, есть ли у вас оболочка (Cmd, Bash и т. Д.), Работающая с папкой в ​​качестве текущего каталога. Это обычная причина, по которой пустая папка помечается как используемая.
AFH
15
<rant> Единственное реальное решение - перезагрузка. В идеале, в Linux, как я сделал несколько лет назад. Это решило проблему навсегда. </
Rant
3
IObit Unlocker: «Никогда не беспокойтесь о« Невозможно удалить файлы »на вашем компьютере» ... или аналогичный. Этот ответ звучит слишком похоже на работу.
Мазура
4
Рад узнать, что это все еще проблема 8 лет спустя
txtechhelp

Ответы:

78

Вам нужно будет использовать Microsoft Process Explorer (просто exe): https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer

Это позволит вам узнать, какое приложение обрабатывает эту папку, и вы также сможете убить этот дескриптор.

Найти -> Найти маркер -> найти имя папки (это займет некоторое время ..)

Визуальный учебник: введите описание изображения здесь

datester
источник
4
Или используйте утилиту handle.exe (также на сайте sysinternals) для решения командной строки.
ErikE
10
Это абсолютно работает. Единственный недостаток: вы обнаруживаете, что на вашем компьютере запущено программное обеспечение (в качестве сервисов), которое удерживает эти дескрипторы, по-видимому, без веской причины, и это просто разочаровывает, что относительно бесполезные вещи настолько агрессивны и написаны так плохо ... (хотя, если подумать, об этом имеет смысл…)
Давидбак
3
В качестве альтернативы, прежде чем пройти через все это, вы можете попробовать перезагрузить компьютер и повторить попытку. Если он все еще заблокирован, то что-то, что запускается при загрузке или во время входа в систему, захватывает его при запуске.
jpmc26
17
Обратите внимание, что принудительное закрытие дескрипторов может привести к повреждению данных при определенных обстоятельствах . Исследователь должен справиться с этим хорошо, но многие программы не могут
Джастин Крейча
4
Я бы порекомендовал убить процесс, которому принадлежит дескриптор, вместо того, чтобы закрывать дескриптор. Вы должны подумать дважды в любом случае ...
Алек Истомин
13

Я нашел другой способ. Вы также можете решить ее, перезапустив explorer.exe.

Однако это не работает, если он заблокирован другим процессом, кроме explorer.exe.

черный
источник
6
Этот простой трюк работает для меня большую часть времени.
NVZ
34
Нет. Это решит проблему, только если папка заблокирована проводником.
Салман А
6
А твоей скорлупы может даже не бытьexplorer.exe
Легкость Гонки с Моникой
12

Пакет Sysinternals уже упоминался, но ProcessExplorer на самом деле не тот инструмент. movefileэто то, что вы хотите. Уничтожение процесса с открытым каталогом может сработать, но это не очень хороший (или безопасный) подход.

С movefileвы можете, хорошо ... перемещение файлов (каталоги файлов!) На следующей перезагрузке. Перемещение файла в никуда , т. ""Е. Планирование удаления при следующей перезагрузке. Обратите внимание, что его нужно запускать из командной строки с повышенными правами (в противном случае вы получаете ошибку 5, пытаясь запланировать удаление во время загрузки).

Damon
источник
10

Вы можете выполнить следующие действия, чтобы найти, какая программа блокирует папку:

  1. Запустите следующую команду в командной строке wmic process > processes.txt. Это создаст выходной файл processes.txtс подробной информацией обо всех запущенных процессах.
  2. Откройте файл в processes.txtтекстовом редакторе.
  3. Поиск по заблокированному имени папки. Вы получите Имя и PID или папку доступа к процессу.
  4. Убить процесс, используя TaskManagerили используя команду TaskKill /PID <pid>. Где <pid>находится PID на шаге № 3.
Sandeep
источник
Я бы хотел, чтобы это сработало. Это не так. CD C: \ - md temp - cd temp - md utemp - cd utemp - notepad - cd .. - rd utemp (сбой из-за блокнота) - wmic process> projects.txt - результирующий process.txt не содержит «utemp» ",
TOOGAM
@TOOGAM Спасибо за указание на это. Я удивлен, увидев, что это действительно произошло с Блокнотом. Протестировал Notepad ++ тоже и смог удалить папку без проблем. +1 за принятый ответ.
Сандип
5

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

В качестве альтернативы с графическим интерфейсом вы можете использовать разблокировщик Iobit, чтобы разблокировать папку, и, следовательно, удалить папку впоследствии. Перетащите целевую папку на интерфейс iobit, затем на полосе прокрутки рядом выберите unlock и delete .

Образец скриншота

xavier_fakerat
источник
1
Отказ от ответственности !! нет никакой связи с программным обеспечением, но это простой способ сделать это на основе графического интерфейса
xavier_fakerat
3
Использование этого программного обеспечения может привести к сбою или нестабильной работе процесса с блокировкой файла / папки. Я хотел бы предложить использовать ответ
даты
1
Windows может повторно использовать дескриптор для другого файла, что может привести к очень неприятным вещам: приложение, которое заблокировало файл, теперь будет неосознанно работать с другим файлом, что потенциально может иметь катастрофические последствия.
gronostaj
1
Хорошо, достаточно справедливо для тех, кто настаивает на том, что этот метод плох, но, поверьте мне, он все равно справится со мной, даже не потревожив. Кроме того, есть слишком много способов «убить эту кошку»
xavier_fakerat
1
@xavier_fakerat Вы либо не поняли проблему, которую выстроил gronostaj, либо у вас очень резкое отношение к вашим файлам.
Во
2

У меня также была эта проблема раньше, и я решил ее, перейдя в Git Bash и используя rm -rf my-directory.

Я понятия не имею, почему это сработало, может быть, Git Bash имеет больше прав, чем команда Windows.

Если вы не знаете Git, вы можете скачать его, набрав «Git» в Google, установить его, а затем просто щелкните правой кнопкой мыши на своем проводнике, где находится каталог, и нажмите «Git bash here».

Hypnoz
источник
Я использую Git Bash, вероятно, это было на самом деле причина.
Black
1

В прошлом я действительно замечал, что даже при скрытых файлах и всех прибамбасах, говорящих показать всем файлам, что определенные программы все равно будут иметь файлы, которые при сохранении с ними будут полностью невидимы в проводнике. Это, вероятно, случай здесь. Что я хотел бы сделать, так это перейти в те программы, с которыми вы использовали эту папку, и открыть файл (если применимо) и посмотреть, что на самом деле находится в файле в этом представлении. Там может быть много нежелательных окон, кажется, намерены скрыться от вас.

Великая утка
источник
1

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

Эрмияс Цегабу
источник
0

У меня была эта проблема раньше, несколько лет назад, когда я использовал автоматическое преобразование / загрузку с веб-сайта, чтобы изменить HTML-страницу на загрузку в текстовый файл. То, как Windows работает с именами файлов, сделало так, чтобы цитаты в заголовке изменили тип файла на тот, который был после кавычек, и сделали его невосстановимым. Решение, которое я нашел, также описывалось как возможность удалять папки, поэтому оно также должно помочь вам.

Сначала откройте командную строку с правами администратора. Скажите, что папка, которую я хочу удалить, находится в C: \ Users \ XXXXXX \ Downloads

Обязательно включайте пробелы, где бы я их ни делал, иначе это не сработает

Введите в команду:

cd /d C:\Users\XXXXXX\Downloads

Следующий тип:

dir /x

Это покажет вам список всех элементов в разделе «Загрузки», с указанием даты / времени, за которым следует ( <DIR>), если папка / a ( 0), если файл, имя в сокращенном формате, а затем полное имя.

Найдите сокращенное имя папки, которую вы хотите удалить, и наберите ее в точности так, как показано в списке - с заглавными буквами, числами, тильдами и т. Д. (Без надписей, 0если файл) - минус квадратные скобки, которые я включил в пример:

rmdir /q /s [SHORTNAMEHERE]

Вот и все! Если вы хотите удалить файл, просто измените rmdirна erase, и все хорошо! Просто убедитесь, что папка, которую вы хотите удалить, на самом деле пуста и в ней нет ничего важного.

A_Lurker
источник