Como corrigir o problema 'O nome do arquivo é muito longo' no Windows

Se você já viu esse problema, provavelmente foi uma correção simples para você. Se você viu esse erro mais de duas vezes, também sabe que às vezes pode ser um problema complexo para corrigir.

Vamos torcer para que você encontre apenas a variedade de correções fáceis, mas também vamos prepará-lo para as correções menos fáceis, com garantia de trabalho.

Por que o comprimento do nome do arquivo é um problema no Windows?(Why Is Filename Length Even An Issue In Windows?)

Há um longo histórico de comprimentos de nomes de arquivos sendo um problema para sistemas operacionais como o Windows(Windows) . Houve um tempo em que você não podia ter nomes de arquivo com mais de 8 caracteres mais uma extensão de arquivo de 3 caracteres. O melhor que você poderia fazer era algo como myresume.doc . Esta foi uma restrição em vigor pelo design do sistema de arquivos.

As coisas melhoraram à medida que novas versões do Windows foram lançadas. Passamos de um sistema de arquivos antigo e limitado para algo chamado New Technology File System ( NTFS ). O NTFS(NTFS) nos levou a um ponto em que um nome de arquivo pode ter 255 caracteres e o comprimento do caminho do arquivo pode chegar a 32.767 caracteres. Então, como podemos ter nomes de arquivos muito longos?

O Windows(Windows) tem coisas conhecidas como variáveis ​​de sistema. Essas são variáveis ​​nas quais o Windows(Windows) depende para funcionar, porque o Windows(Windows) sempre saberá o que as variáveis ​​significam e onde elas estão, mesmo quando estamos movendo bits e bytes por todo o lugar. A variável de sistema MAX_PATH é aquela que restringe nomes de arquivos e caminhos de arquivos a menos de 260 caracteres.

Sendo uma variável, você pensaria que poderíamos mudá-la. Não, não devemos. Seria como puxar um fio de um suéter. Assim que uma variável do sistema muda, outras variáveis ​​do sistema e componentes dependentes delas começam a se desfazer.

Como corrigimos isso, então?

A correção fácil(The Easy Fix)

Se você tiver sorte, receberá o erro e saberá exatamente qual nome de arquivo está causando o problema. Ou pelo menos onde encontrar o arquivo. Talvez você tenha um nome de arquivo parecido com:

C:\User\guymc\Documents\My Resumesresumewithanamesolongthatitcausesproblemsandbecomespartofsomeguysarticleonthewebhowdoyoulikemenow.docx

É óbvio quem é o infrator neste caso. Encontre o arquivo no Windows Explorer , ou File Explorer como é chamado no Windows 10 , clique uma vez nele, pressione F2 para renomeá-lo e altere esse nome de arquivo bobo para algo mais razoável. Problema(Problem) resolvido.

As correções menos fáceis(The Less Easy Fixes)

Nem sempre é tão fácil resolver esse problema. Às vezes, você pode não conseguir alterar os nomes dos arquivos ou diretórios por qualquer motivo.

As soluções a seguir farão o truque para você. Eles não são difíceis de fazer.

Mover(Move) , excluir(Delete) ou copiar arquivos ou diretórios usando o PowerShell(Or Copy Files Or Directories Using PowerShell)

Às vezes, você recebe um erro ao tentar mover, excluir ou copiar diretórios em que a contagem de caracteres para o caminho do arquivo é superior a 260.

Observe que as palavras diretório e pasta são intercambiáveis. Usaremos 'diretório' daqui para frente. Os seguintes cmdlets do PowerShell também podem ser usados ​​em arquivos.

Talvez o caminho do arquivo seja algo como:

C:\Users\guymc\Documents\This\Is\Exactly\The\Precise\Directory\Path\That\I\Need\To\Have\To\Keep\My\Files\Sorted\In\A\Manner\That\Makes\Sense\To\Me\So\Lets\Pretend\This\Is\An\Actual\Filepath\That\You\Might\Also\Have\On\Your\Windows\Computer\And\Not\Over\Think\It\Document.docx

Esse caminho de arquivo tem 280 caracteres. Portanto, não podemos copiar o diretório de lá para outro lugar com o método normal de copiar e colar. Obtemos o erro Destination Path Too Long .

Vamos supor que, por qualquer motivo, não possamos renomear os diretórios nos quais o arquivo está aninhado. O que nós fazemos?

Abra o PowerShell(Open PowerShell) . Se você ainda não usou o PowerShell , aproveite nosso artigo Using PowerShell for Home Users – A Beginner's Guide . No entanto, você pode fazer as próximas etapas sem ler o artigo.

Quando o PowerShell for aberto, você estará na raiz do seu diretório de usuários. Continue(Follow) assumindo que C:\Users\guymc é seu diretório de usuário.

O diretório chamado This está dentro do diretório Documentos(Documents) . Para ir para o diretório Documentos(Documents) , usamos o comando DOS cd Documents

Você verá o prompt mudar para C:\Users\guymc\Documents . Isso é bom. Estamos trabalhando mais próximos dos diretórios, o que facilitará as coisas.

Copiar Diretório Usando Copiar Item

Queremos copiar o diretório This e seu conteúdo para ThatNewFolder . Vamos usar o cmdlet Copy-Item do PowerShell com os parâmetros -Destination e -Recurse .

-Destination informa ao PowerShell onde queremos que a cópia esteja. -Recurse informa ao PowerShell para copiar todos os itens internos para o destino. A cópia deixa os originais onde estão e faz todos os novos no destino.

Copy-Item This -Destination ThatNewFolder -Recurse

Mover Diretório Usando Move-Item

Digamos que queremos mover o diretório This, e todos os diretórios e arquivos nele, para ThatNewFolder . Mover não deixa o original no lugar.

Podemos usar o cmdlet Move-Item do PowerShell com os parâmetros -Path e -Destination . -Path define o item que queremos mover e -Destination informa ao PowerShell onde queremos. 

O cmdlet colocará This dentro de ThatNewFolder . Ele também moverá tudo o que estiver dentro do diretório This. Move-Item pode ser usado para mover arquivos ou diretórios e funciona independentemente do caminho do arquivo ou do comprimento do nome do arquivo.

Move-Item -Path This -Destination ThatNewFolder

Para ter certeza de que funcionou, use o comando cd ThatNewFolder para entrar em ThatNewFolder . Em seguida, use o comando dir para listar os diretórios em ThatNewFolder . Você verá o diretório Este diretório está lá.

Excluir diretório usando Remove-Item

Se quisermos excluir o diretório This e tudo nele, usamos o cmdlet Remove-Item .

O cmdlet Remove-Item tem alguma segurança interna que dificulta a exclusão de um diretório com itens dentro dele. Em nosso exemplo, sabemos que queremos excluir tudo, então usaremos os parâmetros -Recurse para excluir tudo dentro e -Force para fazer isso sem nos perguntar se temos certeza de cada item dentro.

Esteja avisado! Recuperar qualquer coisa excluída dessa maneira seria extremamente difícil. Você pode tentar os métodos em Como recuperar arquivos excluídos acidentalmente , mas não espere muito.

Remove-Item This -Recurse -Force

Você pode usar o comando dir novamente para certificar-se de que ele desapareceu.

Faça o Windows 10 aceitar caminhos de arquivos longos(Make Windows 10 Accept Long File Paths)

Se você sabe que usará caminhos de arquivo longos e nomes de arquivo longos repetidamente, é mais fácil fazer o Windows(Windows) trabalhar para você. Não faz sentido usar o PowerShell para fazer o trabalho todos os dias.

Existem duas maneiras de fazermos isso. Um é para usuários do Windows 10 Home e o outro é para usuários do Windows 10 Pro ou Enterprise . Esses métodos podem funcionar para o Windows 8.1(Windows 8.1) ou anterior, mas não podemos garantir isso.

Faça(Make) o Windows 10 Home aceitar caminhos de arquivos longos(Home Accept Long File Paths)

Para que o Windows 10 Home aceite caminhos de arquivo longos, precisamos abrir o Editor do Registro(Registry Editor) . Se você nunca trabalhou no Editor do Registro(Registry Editor) antes, tenha cuidado. A exclusão ou alteração acidental de coisas aqui pode impedir que o Windows(Windows) funcione completamente.

Sempre faça um backup do seu registro antes de fazer qualquer alteração. Saiba tudo o que você precisa saber sobre isso em nosso Guia definitivo para fazer backup e restaurar o registro do Windows( Ultimate Guide to Backing Up and Restoring the Windows Registry) .

Depois de abrir o Editor do(Editor) Registro e fazer o backup, navegue até o local HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem e encontre a chave LongPathsEnabled .

Clique duas vezes em LongPathsEnabled . No campo Dados do valor:,(Value data:) certifique-se de que o número 1 esteja lá. Clique em OK para confirmar a alteração.

Saia do Editor do Registro(Registry Editor) e você poderá trabalhar com caminhos de arquivo longos e loucos agora.

Faça(Make) o Windows 10 Pro ou Enterprise aceitar caminhos de arquivos longos(Pro Or Enterprise Accept Long File Paths)

Para permitir que o Windows 10 (Windows 10) Pro ou Enterprise use caminhos de arquivo longos, usaremos o Editor de Diretiva de Grupo(Group Policy Editor) . É uma ferramenta que nos permite definir políticas sobre como o Windows opera no computador e nos níveis de usuário.

Temos vários artigos sobre como usar a política de grupo para fazer coisas como desabilitar ou habilitar opções do Internet Explorer( disabling or enabling Internet Explorer options) ou adicionar uma mensagem à tela de logon( adding a message to the logon screen) .

Abra o Editor(Group Policy Editor) de Diretiva de Grupo acessando o menu Iniciar(Start) e digitando gpedit . O resultado principal deve ser Editar política de grupo(Edit group policy) . Dê um duplo clique sobre isso.

Quando o Editor de Diretiva de Grupo(Group Policy Editor) for aberto, navegue até Computer Configuration > Administrative Templates > System > Filesystem . Lá você verá a política Habilitar caminhos longos do Win32(Enable Win32 long paths) .

Clique duas vezes nele para editar a configuração de política. Altere-o de Desativado(Disabled ) para Ativado(Enabled) e clique no botão OK para confirmar a alteração. 

A política pode não entrar em vigor imediatamente. No entanto, você pode forçar a atualização da política de grupo .( force the group policy to update)

É isso(That’s It)

Existem algumas outras maneiras de contornar nomes de arquivos longos e caminhos de arquivos, mas o que passamos aqui são os métodos mais simples e eficazes.



About the author

Sou engenheiro de software e tenho experiência com o Microsoft Office e o navegador Chrome. Tenho conhecimento em muitos aspectos do desenvolvimento web, incluindo, mas não limitado a: HTML, CSS, JavaScript, jQuery e React. Meu interesse em trabalhar com tecnologia também significa que estou familiarizado com várias plataformas (Windows, Mac, iOS) e entendo como elas funcionam.



Related posts