Como excluir arquivos e pastas que não podem ser excluídos?

28

Eu tenho uma cópia de backup de uma Documents and Settingspasta anterior do Windows que contém apenas meu usuário original e em mais 2 diretórios: Favoritese Local Settings.

Quando tento excluir Local Settings, recebo este erro:

texto alternativo

Quando tento excluir Favorites, recebo este erro:

texto alternativo

Eu executei isso em um shell cmd :

attrib *. * -r -a -s -h / s

... mas não ajudou, nem retornou erros / avisos.

Eu usei Unlocker v1.8.5e LockHunterrepetidamente em vários níveis para ver se há arquivos em uso, mas ambos sempre dizem: Nenhum arquivo bloqueado .

Atualização # 1:

Consegui renomear o diretório, que agora me dá esse aviso antes (tentando) excluir:

texto alternativo

Se eu pressionar Sim (ou Sim para todos ), recebo este erro:

texto alternativo

Atualização # 2:

Deixei chkdsk /fexecutar, o que exigiu uma reinicialização, pois está na minha partição do sistema principal. Durante a digitalização do Estágio 2, recebi cerca de 40 delas:

Excluindo uma entrada de índice do índice $ 0 do arquivo 25.

...Seguido por:

Excluindo cookies de entrada de índice no índice $ I30 do arquivo 37576.

... mas ainda recebo a primeira caixa de diálogo de erro acima ao tentar excluir.

Corri chkdsk novamente, desta vez: chkdsk /f /r. Não produziu mensagens. Mesmo resultado ao excluir.

Atualização # 3:

Indo mais fundo, esse 99é o nome de um dos muitos diretórios localizados aqui:

C: \ Documents and Settings.OLD \ Usuário \ Configurações locais \ Dados de aplicativos \ Microsoft \ Messenger \ endereç[email protected] \ SharingMetadata \ [email protected] \ DFSR \ Staging \ CS {D4E4AE55-B5E2-F03B-5189-6C4DA6E41788 } \

Dentro de cada um desses diretórios havia arquivos com nomes como:

2300- {C93D01AC-0739-4FD9-88C7-13D2F21A208E} -v2300- {C93D01AC-0739-4FD9-88C7-13D2F21A208E} -v2300-Downloaded.frx

Percebi que, diferentemente de todos os diretórios, não conseguia renomear nenhum desses arquivos. Notei também que os nomes dos arquivos + dir eram extremamente longos:

Diretório original = 194 caracteres
Nomes de arquivos = mais de 100 caracteres
Juntos, o comprimento excede o limite de 255 caracteres, o que é ruim e explicaria a mensagem de erro que eu publiquei na Atualização 1.

Solução Parcial:

Renomeie todos os diretórios até que o tamanho total do caminho seja menor que 100. Posteriormente, pude renomear os .frxarquivos, sem mencionar excluir tudo dentro do Local Settingsdiretório.

Esta é apenas uma solução parcial, porque esses diretórios (vazios) ainda não podem ser excluídos,

C: \ 1 \ 2 \ Favoritos \ Viena \ O que fazer ..
C: \ 1 \ 2 \ Favoritos \ Fotografia \ FOGO

Mesmo erro que acima:

texto alternativo

Aqui está o que as propriedades do Explorer mostram para as duas pastas:

texto alternativo

Atualização # 4 (outra solução parcial):

Usando a resposta da harrymc combinada com a leitura minuciosa deste artigo incrível do MS-KB, que contém quase a idéia de todos e, em seguida, alguns, discretamente intitulados: Você não pode excluir um arquivo ou pasta em um volume do sistema de arquivos NTFS .

Consegui excluir a 2ª pasta C:\1\2\Favorites\Photography\FIRE- o problema é que havia um espaço invisível à direita no final. Eu tive sorte quando fiz um preenchimento automático enquanto brincava com o del "\\?\<path>"comando que ele sugeriu.

NOTA: Um normal delNÃO funcionou nem foi excluído de explorer.

Agora tudo o que resta é o primeiro diretório C:\1\2\Favorites\Wien\What To Do..(sim, tentei sem parar com várias combinações da solução acima;)

glenneroo
fonte
@glenneroo tente usar o LockHunter em vez do Unlocker e veja o que diz. Além disso, o que acontece quando você clica em "Sim" ou "Sim para todos" na caixa "Confirmar exclusão de arquivo"?
precisa saber é o seguinte
O LockHunter também diz que nenhum processo está bloqueando esse arquivo ou pasta.
glenneroo
Eu tive um problema semelhante ao de você com alguns arquivos da Adobe enterrados em algumas pastas de uma instalação de backup do Windows. Tentei renomear todas as pastas para 'x' para encurtar o caminho, mas não funcionou. Deixei-os assim para me lembrar que não eram nada e deixei-os ficar lá por alguns anos, até que finalmente consegui DBAN o disco antes de enviá-lo para alguém.
Tofystedeth
11
Devido às propriedades de arquivo extremamente pequenas que você vê (nem mesmo as datas), acho que esse é um ponteiro de arquivo que aponta para um arquivo que não existe. Eu não sei como consertar isso, porém, mas isso pode dar uma idéia para alguém que sabe ...
temor
11
Só porque existem alguns arquivos mortos que nem sequer estão ocupando muito espaço? A unidade tem ~ 2 anos e eu prefiro não ter que reinstalar novamente . Quanto às leituras SMART, o Google divulgou aqui um relatório que basicamente dizia que você não pode colocar muito peso na maioria dessas leituras: labs.google.com/papers/disk_failures.pdf Também o chkdsk / R não informou nada de errado. Você pode recomendar uma ferramenta para o Windows como resposta?
glenneroo

Respostas:

29

del é para excluir arquivos, rd aka rmdir é para excluir pastas, então ...

rd /s "\\?\C:\1\2\Favorites\Wien\What To Do.."

... deve fazer o trabalho! :-)

O /sparâmetro

remove todos os diretórios e arquivos no diretório especificado, além do próprio diretório.
Usado para remover uma árvore de diretórios.


Se isso não funcionar; mesmo não com curingas / preenchimento automático; então você tem problemas de corrupção.

Tom Wijsman
fonte
oh homem que parece que poderia ser a resposta ali mesmo :-)
James T
Uau, alguém incrível finalmente conseguiu! Você ganha um bônus duplo! :)
glenneroo 29/01
@glenneroo: Voto a favor de todos que ajudaram com isso como retorno. :-)
Tamara Wijsman
6

Eu tentaria executar o chkdsk primeiro, como Jeff sugeriu. Se isso não funcionar, você pode inicializar com um live cd do linux, montar o disco rígido e excluir as pastas do ambiente ao vivo do linux.

byachna
fonte
Estou extremamente hesitante em usar uma alternativa (para o NTFS de código fechado) para excluir arquivos de uma partição NTFS. De minhas experiências, o suporte à leitura geralmente funciona bem, mas escrever pode ser perigoso.
glenneroo
11
O suporte a gravação no NTFS agora é muito bom em distribuições Linux modernas, especialmente considerando que o WinXP não implementa completamente a especificação NTFS.
Jonathan
11
Concordado, o Linux possui excelente suporte NTFS.
Jeff F.
Há pouco tempo (verão de 2010), usei o ntfs-3g para excluir arquivos antes de reinstalar o XP. Posteriormente, durante a instalação do XP, chkdskencontrou uma carga métrica de arquivos corrompidos. Eu também consegui matar os drivers NTFS no passado apenas fazendo leituras. Os dois casos foram concedidos em partições extremamente fragmentadas com vários 100.000 arquivos.
glenneroo
6

Você provavelmente tem corrupção no FS (sistema de arquivos). Execute um chkdsk e tente remover os arquivos.

Verifique também se nada está em uso no diretório, como sugere o aviso.

Eu também recomendaria fazer um backup dos seus arquivos importantes antes de qualquer coisa.

Jeff F.
fonte
Usei a ferramenta Unlockerpara verificar se nenhum identificador estava aberto em nenhum desses arquivos.
glenneroo
Foi o que eu imaginei. Você provavelmente precisará executar chkdsk / f
Jeff F.
11
@ Moo: Não, a limpeza do índice com chkdsk é normal. É um artefato de como eles são armazenados, eles só podem ser limpos durante uma verificação de disco. Não me lembro onde li isso.
afrazier
11
@glennroo - os bsod's durante operações de gravação também são sinais de falha no disco. Eu não ficaria surpreso em ver seu disco durar mais um ano, mas também não ficaria surpreso em vê-lo morrer amanhã.
Joel Coehoorn
11
Eu vejo que você tem trid chkdsk /F; tente também, chkdsk /Rque executa duas etapas adicionais para tentar marcar setores defeituosos e recuperar dados.
AniDev 18/01
5

Ainda recebo a caixa de diálogo Erro 99 acima ao tentar excluir.

99 não é um número de erro - é o nome de um arquivo ou pasta dentro da pasta que você deseja remover. Procure este item.

Depois de encontrá-lo, está apenas reclamando de um erro de permissão. Isso provavelmente ocorre porque certas coisas nas pastas de perfis dos usuários estão configuradas para ter apenas permissões para esse usuário e mais ninguém e para não herdar permissões de seus pais ou por algum outro motivo, todas as permissões no arquivo foram perdidas. O resultado é que nenhuma conta de usuário no seu computador pode fazer nada com o arquivo ou a pasta.

Para corrigir isso, clique com o botão direito do mouse no arquivo (ou ele contém a pasta para garantir que você obtenha tudo), escolha Propertiesno menu de contexto e depois na Securityguia na caixa de diálogo que é aberta. Essa tela terá um Advancedbotão no qual você deve clicar. Procure a Ownerguia na caixa de diálogo que é aberta. Agora você deve poder usar esta janela para se apropriar, o que atribuirá novas entradas de permissões ao item e, finalmente, permitirá que você exclua-o.

Joel Coehoorn
fonte
Bom ponto sobre o nome do arquivo! Definir permissões não ajudou, mas, aliás, encontrei metade da resposta!
glenneroo
5

Li o seguinte no site de suporte da Microsoft :

1) use dir /xpara obter os nomes abreviados (notação 8.3) dos arquivos / pastas listados 2) use rmdir /s shortnamepara remover uma pasta cujo nome longo não seja padrão

pt3
fonte
Boa ideia! Infelizmente, todas as pastas que não consigo excluir não têm nome abreviado, ou seja, dir /x
ficam
3

Você pode usar a \\?\sintaxe Unicode no cmd para excluir diretórios muito longos, pois o comprimento do caminho com essa sintaxe é "limitado" a 32.767 caracteres:

del /s /f /q "\\?\C:\Documents and Settings.OLD\User\Local Settings\Application Data\Microsoft\Messenger\[email protected]\SharingMetadata\[email protected]\DFSR\Staging\CS{D4E4AE55-B5E2-F03B-5189-6C4DA6E41788}\"
rmdir "\\?\C:\Documents and Settings.OLD\User\Local Settings\Application Data\Microsoft\Messenger\[email protected]\SharingMetadata\[email protected]\DFSR\Staging\CS{D4E4AE55-B5E2-F03B-5189-6C4DA6E41788}\"

Pode ser útil pressionar a tecla tab para alternar entre os nomes dos diretórios assim que você obtiver um \, para que o Windows inicie automaticamente os diretórios existentes nessa pasta.

Consulte Arquivos de nome, caminhos e espaços para nome da Microsoft .

harrymc
fonte
Isso funcionará, mas acredito que o delcomando tenha o MAX_PATHlimite :(
Billy ONeal
Bom truque! Eu contornei os nomes de arquivos longos renomeando diretórios para 1-2 caracteres. Eu tentei estes comandos nos dois diretórios restantes: Could not find file.seguido por aThe system cannot find the file specified.
glenneroo
Atualizei minha resposta. O uso desta versão do deli foi capaz de excluir um dos dois criminosos restantes (que tinham um espaço à direita). A recompensa é sua, mas a trama se complica!
glenneroo
Em casos ultra-problemáticos, você poderá excluir o diretório que contém (depois de remover as coisas que deseja manter).
harrymc
Muito satisfeito, eu tive um nome de diretório corrompido por 3 anos e finalmente encontrei isso! O uso do comando rmdir acima me permitiu livrar-me do dir quebrado.
hazymat
2

Pessoalmente, concordo com byachna e CarlF que um CD ao vivo para Linux é a sua melhor aposta. O Linux não se importa com permissões, para que você possa excluir e excluir coisas sem reclamar. Nunca tive problemas com a gravação de NTFS no linux. Venho fazendo isso regularmente há vários anos.

Eu entendo que você não quer mexer com o Linux, então vou sugerir outra coisa. Algo que Ashimema já sugeriu ... mas esqueceu alguns links. Em vez de um live CD do Linux, você pode experimentar um dos muitos CD's do Windows Live.

http://www.ubcd4win.com/ (requer o xp install cd para criar)

http://www.reatogo.de/REATOGO.htm (requer o xp install cd para criar)

http://www.nu2.nu/pebuilder/ (requer o cd de instalação do xp para criar)

http://www.vistape.net/index.php (requer o Vista Install DVD para criar)

Tente inicializar o CD ao vivo que você decidir usar e excluir as pastas que estão causando todos os problemas. Como é o Windows, ele aplicará permissões de arquivo. Pode ser necessário alterar as permissões ou a propriedade dos arquivos para excluí-los. Talvez até tente o truque "\?" Do CD do Windows Live.

Outra coisa a tentar seria o comando cacls ou icacls para verificar se você pode se dar permissões nas pastas.

James T
fonte
Vou dar uma chance a eles e relatar (quando eu tiver algumas horas).
glenneroo
0

Inicialize seu sistema usando uma distribuição Linux compatível com NTFS, digamos um liveCD do Ubuntu.

Monte o sistema de arquivos do Windows.

Exclua o que quiser, pois o Windows não poderá dizer "Não".

Antes de fazer isso, faça um backup completo.

CarlF
fonte
11
Obrigado, mas byachna já sugeriu isso. Hesito em tentar, porque tive problemas no passado com sistemas de arquivos corrompidos. Além disso, este caso está lidando com arquivos corrompidos, ou seja, o uso de um driver NTFS não suportado pode acabar com o sistema completamente.
glenneroo
Os drivers NTFS atuais no Linux são menos propensos a corromper os sistemas de arquivos que o Windows, na minha experiência limitada.
CarlF
3
Eu realmente gostaria de ver dados para fazer backup dessa declaração. Eu nunca tive o Windows corromper um FS, exceto por falha de hardware.
Billy ONeal
Há uma razão pela qual escrevi "em minha experiência limitada". Eu tive alguns problemas como o glenneroo usando o Windows (XP e Vista) e nenhum com o NTFS-3G. Eu pensei que o aviso deixaria isso claro.
CarlF
0

Existem várias maneiras complicadas e difíceis de resolver isso, como descobri no passado.

Agora que estou confiante com o que estou fazendo, basta executar um chkdsk e, em seguida, inicializar um CD ao vivo para excluir os arquivos se ainda houver algum problema (se você estiver preocupado com as habilidades do Linux com o NTFS, tente quer BartPE ou [Windows PE] [2], ambos livremente disponível)

Se você estiver indo para o longo caminho, todas as outras sugestões certamente o ajudarão a reduzir o erro real.

Ashimema
fonte
Felicidades James por adicionar os links que eu não poderia (sendo muito novo aqui) em um post abaixo!
Ashimema
0

Tarde para a festa, mas esse método funciona na maioria das vezes, se não inicializar a partir de uma distribuição Linux e excluir a partir daí.

Abra uma janela elevada do prompt de comando e deixe-a aberta.

Feche todos os programas abertos.

Clique em Iniciar, Executar e digite TASKMGR.EXE Vá para a guia Processos e Finalizar processo em "Explorer.exe". Deixe o Gerenciador de tarefas aberto.

Volte para a janela do prompt de comando e mude para o diretório em que o AVI (ou outro arquivo não excluído) está localizado. No prompt de comando, digite DEL <caminho completo do arquivo que você deseja excluir> ou o comando que desejar.

Volte ao Gerenciador de tarefas, clique em Arquivo, Nova tarefa e digite EXPLORER.EXE para reiniciar o shell da GUI. Feche o Gerenciador de tarefas.

Moab
fonte
-1

A resposta de Joel está meio certa, você precisa ativar a guia segurança primeiro, vá ao painel de controle> opções de pastas e a segunda guia (esqueci o nome) no final da lista com opções, há algo sobre o gerenciamento avançado de pastas (novamente i não sei qual é o nome em inglês) depois de fazer isso, você poderá definir permissões para o usuário na guia segurança, como mencionado anteriormente.

Guillermo Siliceo Trueba
fonte
Eu já tinha essas opções ativadas, além de já ter tentado o que ele recomendou, mas não ajudou. Leia a Atualização nº 3 e a Solução Parcial para saber o que está acontecendo. A pasta que não consigo excluir nem possui propriedades, muito menos opções de segurança.
glenneroo
Certifique-se de adicionar acesso e opções completos ao usuário TODOS, com o verificador do usuário incluído, você pode fazer isso.
Guillermo Siliceo Trueba