Почему `rd /S` говорит «каталог не пуст»?

Почему `rd /S` говорит «каталог не пуст»?

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

решение1

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

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

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!

решение2

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

решение3

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

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

решение4

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

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

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

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

Функция PowerShell Remove-Item также страдает от этой проблемы.

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

Связанный контент