3

Я пытаюсь выполнить rd /S в непустом каталоге, и иногда он работает нормально, иногда он сообщает "Каталог не пуст". Почему я получаю эту ошибку? Есть ли надежный способ удалить папку, полную файлов и подкаталогов под Windows? Удаляемый Remove-Item PowerShell также страдает от этой проблемы.

4 ответа4

6

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

Я бы запрограммировал задержку и повторил ошибку.

for (i = 1 to 10 etc...)
{
  try to remove directory
  if directory does not exist, break out of loop
  wait a second
}
if directory still exists, abort!
1

Вполне вероятно, что пустая пустая папка содержит некоторые скрытые файлы или что кто-то все еще использует эту папку.

0

Попробуй это:

del c:\test\*.* /Q
rmdir c:\test /Q
-1

Я пытаюсь выполнить rd /S в непустом каталоге, и иногда он работает нормально, иногда он сообщает, что каталог не пустой. Почему я получаю эту ошибку?

Потому что он содержит скрытые файлы или файлы, требующие разных разрешений.

Есть ли надежный способ удалить папку, полную файлов и подкаталогов под Windows?

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

Удаляемый элемент PowerShell также страдает от этой проблемы.

Если это не проблема с разрешением, вы можете принудительно вызвать: Remove-Item -Recurse -Force …

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