Uso regularmente o Node.js para gerenciar dependências de programas que escrevo, não é grande coisa. Hoje acabei com uma estrutura de pastas assim:
A tentativa de excluir qualquer arquivo foi recebida com este erro:
Os nomes dos arquivos de origem são maiores do que os suportados pelo sistema de arquivos. Tente mudar para um local com um nome de caminho mais curto ou renomeie para nomes mais curtos antes de tentar esta operação.
Já estava em C: \, então não ia ficar muito mais curto.
windows-7
windows
filesystems
Seiyria
fonte
fonte
Respostas:
Use a ferramenta Microsoft
robocopy.exe
.c:\empty
Em seguida, copie a pasta vazia na pasta que contém os nomes de arquivos longos que você está tentando excluir, por exemplo
c:\myannoyingfolder
. Faça o seguinte no prompt de comando:robocopy / MIR c: \ vazio c: \ myannoyingfolder
fonte
ok, digamos que você queira excluir uma árvore
D:\very\long\path
, não precisa necessariamente usar nenhuma ferramenta como o Robocopy.D:\a
D:\very\long\path
D:\a
fonte
Comecei a digitar esse problema ao tentar vários comandos, incluindo
del /F
ermdir /S
(além de manter a tecla Shift pressionada ao excluir para tentar ignorar a lixeira). Eu acho que,rmdir /S
na verdade, excluí todos os arquivos, então pude prosseguir com a exclusão das pastas que eram nós de folhas e, em seguida, progredindo na árvore alguns nós de cada vez. Eventualmente, eu limpei todos eles, mas isso era ridículo.fonte
Você pode integrar essa funcionalidade ao shell do Windows. Meu aprimoramento na resposta de Flo foi muito longo para um comentário.
Eu adicionei um
Delete
comando ao menu de contexto do Windows.O
delete.reg
arquivo adiciona entradas do Registro para associar pastas aorobodelete.bat
arquivo em lotes.delete.reg
robodelete.bat
Nota : Pode ser necessário alterar os caminhos nos dois arquivos conforme suas preferências.
AVISO : Não há como desfazer este comando. Ele não usa a lixeira e não pede que Y / N confirme antes de destruir a pasta para sempre!
fonte
A ferramenta de linha de comando de código aberto SuperDelete ( GitHub ) funcionou para mim depois que outras opções falharam (Windows 10).
fonte
A melhor maneira de fazer isso é usar a robocópia. Eu a documentei no meu blog pessoal para você seguir:
http://clintboessen.blogspot.com.au/2014/05/how-to-delete-files-which-exceed-255.html
fonte
Em muitos casos, o CD no diretório a partir de um prompt de comando e o uso do DEL funcionarão.
Caso contrário, você deve trabalhar seu nome na árvore de diretórios: renomeie a pasta de nível mais baixo para um nome mais curto (por exemplo, "a"), depois o próximo nome de pasta mais alto e assim por diante, até que o caminho total seja curto o suficiente. Ao trabalhar de baixo para cima, você sempre manipula nomes com um caminho completo mais curto que os arquivos finais.
fonte
net use z: c:\path
del z:\*.*
Ajustar de acordo. Z: é apenas uma letra de unidade arbitrária para a qual mapear o caminho incorreto. Esse último comando de exclusão apagará o diretório INTEIRO que você mapeou - portanto, seja mais específico conforme necessário.
fonte
A melhor maneira é ter o Linux inicializável no pendrive e excluir arquivos sem problemas nos sistemas operacionais de CD ao vivo .
fonte
Eu também tive o mesmo problema, e eu mesmo o encontrei, simplesmente renomeie a pasta pai o menos possível. Ex. Se a nossa pasta na unidade " D " for como D: // Folder / Undelete_Folder . Apenas uma coisa que você precisa fazer é renomear o nome da pasta pai tão pequeno quanto você pode renomeá-la " a ". sua localização será D: // a / Undelete_folde r. e exclua a pasta pai.
fonte
Se todo o resto falhar
Vá para o diretório final na string. Recortar os arquivos Cole novamente no 4º ou 5º arquivo da String. Então [Shift] + [Delete] deve executar o truque.
Fiquei cético ao executar o acima no prompt de comando elevado, pois estava excluindo um arquivo de restauração de teste de um backup do DPM.
espero que isto ajude.
fonte