Я пытаюсь выполнить rd /S
в непустом каталоге, и иногда он работает нормально, иногда он сообщает "Каталог не пуст". Почему я получаю эту ошибку? Есть ли надежный способ удалить папку, полную файлов и подкаталогов под Windows? Удаляемый Remove-Item
PowerShell также страдает от этой проблемы.
4 ответа
Это может быть локальный антивирус или служба индексирования, сканирующая и блокирующая вновь скопированные файлы от немедленного удаления.
Я бы запрограммировал задержку и повторил ошибку.
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!
Вполне вероятно, что пустая пустая папка содержит некоторые скрытые файлы или что кто-то все еще использует эту папку.
Попробуй это:
del c:\test\*.* /Q
rmdir c:\test /Q
Я пытаюсь выполнить
rd /S
в непустом каталоге, и иногда он работает нормально, иногда он сообщает, что каталог не пустой. Почему я получаю эту ошибку?
Потому что он содержит скрытые файлы или файлы, требующие разных разрешений.
Есть ли надежный способ удалить папку, полную файлов и подкаталогов под Windows?
Загляните в папку, чтобы увидеть, какие файлы остались, и проверьте, можете ли вы удалить их вручную. Если нет, вам могут потребоваться другие разрешения. Попробуйте запустить его из командной строки с повышенными правами.
Удаляемый элемент PowerShell также страдает от этой проблемы.
Если это не проблема с разрешением, вы можете принудительно вызвать: Remove-Item -Recurse -Force …