¿Por qué `rd /S` dice "directorio no vacío"?

¿Por qué `rd /S` dice "directorio no vacío"?

Estoy intentando ejecutar rd /Sen un directorio que no está vacío y, a veces, funciona bien, a veces informa "El directorio no está vacío". ¿Por qué recibo este error? ¿Existe una forma confiable de eliminar una carpeta llena de archivos y subdirectorios en Windows? PowerShell Remove-Itemtambién sufre este problema.

Respuesta1

Puede ser que el antivirus local o el servicio de indexación escanee y bloquee los archivos recién copiados para que no se eliminen instantáneamente.

Programaría un retraso y volvería a intentarlo si falla.

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!

Respuesta2

Es muy probable que la carpeta vacía recuperada contenga algunos archivos ocultos o que alguien todavía esté usando la carpeta.

Respuesta3

Prueba esto:

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

Respuesta4

Estoy intentando ejecutar rd /Sen un directorio que no está vacío y, a veces, funciona bien, a veces, informaEl directorio no está vacío. ¿Por qué recibo este error?

Porque contiene archivos ocultos o archivos que requieren permisos diferentes.

¿Existe una forma confiable de eliminar una carpeta llena de archivos y subdirectorios en Windows?

Mire dentro de la carpeta para verquéLos archivos quedan y comprueba si puedes eliminarlos manualmente. De lo contrario, es posible que necesite permisos diferentes. Intente ejecutarlo desde unsímbolo del sistema elevado.

Remove-Item de PowerShell también sufre este problema.

Si no es un problema de permisos, puedes forzarlo:Remove-Item -Recurse -Force …

información relacionada