Por que 'rd / S' diz “diretório não vazio”?

3

Estou tentando executar rd /S em um diretório não vazio e, às vezes, ele funciona bem; às vezes, ele 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 Remove-Item do PowerShell também sofre com esse problema.

    
por Borek Bernard 19.09.2012 / 10:01

4 respostas

6

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 com 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!
    
por 19.09.2012 / 16:56
1

É bastante provável que a pasta vazia não excluída contenha alguns arquivos ocultos ou que alguém ainda esteja usando a pasta.

    
por 25.11.2013 / 11:49
0

Tente isto:

del c:\test\*.* /Q
rmdir c:\test /Q
    
por 27.09.2013 / 16:04
-1

I'm trying to execute rd /S on a non-empty directory and sometimes, it works fine, sometimes, it reports The directory is not empty. Why am I getting this error?

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

Is there a reliable way to remove a folder full of files and subdirectories under Windows?

Olhe dentro da pasta para ver quais arquivos são deixados e verifique se você pode excluí-los manualmente. Se não, você pode precisar de permissões diferentes. Tente executá-lo a partir de um prompt de comando elevado .

PowerShell's Remove-Item also suffers from this issue.

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

    
por 19.09.2012 / 17:23