Por que `rd /S` diz "diretório não vazio"?

Por que `rd /S` diz "diretório não vazio"?

Estou tentando executar rd /Sem um diretório não vazio e às vezes funciona bem, às vezes informa "O diretório não está vazio". Por que estou recebendo esse erro? Existe uma maneira confiável de remover uma pasta cheia de arquivos e subdiretórios no Windows? O PowerShell Remove-Itemtambém sofre com esse problema.

Responder1

Pode ser o antivírus local ou o serviço de indexação que verifica e impede que os arquivos recém-copiados sejam excluídos instantaneamente.

Eu programaria um atraso e tentaria novamente em caso de falha.

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!

Responder2

É bem provável que a pasta vazia recuperada contenha alguns arquivos ocultos ou que alguém ainda esteja usando a pasta.

Responder3

Experimente isto:

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

Responder4

Estou tentando executar rd /Sem um diretório não vazio e às vezes funciona bem, às vezes reportaO diretório não está vazio. Por que estou recebendo esse erro?

Porque contém arquivos ocultos ou que requerem permissões diferentes.

Existe uma maneira confiável de remover uma pasta cheia de arquivos e subdiretórios no Windows?

Olhe dentro da pasta para vero queos arquivos restantes e verifique se você pode excluí-los manualmente. Caso contrário, você pode precisar de permissões diferentes. Tente executá-lo de umprompt de comando elevado.

O Remove-Item do PowerShell também sofre com esse problema.

Se não for um problema de permissão, você pode forçá-lo:Remove-Item -Recurse -Force …

informação relacionada