为什么“rd /S”显示“目录不为空”?

为什么“rd /S”显示“目录不为空”?

我尝试rd /S在非空目录上执行,有时运行正常,有时则报告“目录不为空”。为什么会出现此错误?有没有可靠的方法可以在 Windows 下删除一个充满文件和子目录的文件夹?PowerShellRemove-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 …

相关内容