Resolvendo o Erro do Windows: Caminho de Destino Muito Longo

Você tem tentado desesperadamente mover ou excluir um arquivo, apenas para se deparar com uma mensagem de erro frustrante que diz “Caminho de Destino Muito Longo”? Este erro infame é mais comum do que você imagina, transformando as tarefas mais simples de gerenciamento de arquivos em um labirinto digital.

Mas não tema! Neste tutorial, você aprenderá estratégias testadas em batalha para conquistar o dilema do “Caminho de Destino Muito Longo”.

Agora, se você está cansado de sentir que seu computador está se fazendo de difícil, fique por aqui para se livrar desta irritante mensagem de erro do Windows!

Pré-requisitos

Antes de conquistar o erro “Caminho de Destino Muito Longo”, certifique-se de estar bem equipado para a jornada com o seguinte:

  • A Windows computer – This tutorial uses Windows 10 for demonstrations.
  • PowerShell 5.1 ou posterior – Este tutorial utiliza o PowerShell 7.4.0.
  • Permissões administrativas.
  • 7-zip instalado – Este tutorial utiliza o 7-zip 23.01, a versão mais recente no momento da redação deste texto.

Desmistificando o Erro “Caminho de Destino Muito Longo”

Esta mensagem criptografada, “Caminho de Destino Muito Longo”, como a que segue abaixo, frequentemente surge do limite MAX_PATH, uma restrição histórica profundamente enraizada nos sistemas de arquivos do Windows. O limite MAX_PATH, definido em 260 caracteres, tem sido um desafio de longa data para os usuários lidarem com diretórios profundamente aninhados, estruturas de pastas complexas e nomes de arquivo extensos.

Demonstrating the “Destination Path Too Long” error

Ao longo deste tutorial, você desvendará as complexidades do limite MAX_PATH e revelará estratégias práticas para superar essa limitação.

Reduzindo o Comprimento do Caminho do Arquivo Renomeando a Pasta Pai

Imagine que seu computador de repente decide canalizar seu interior Shakespeare e declara: “Mover ou não mover, eis a questão.” Mas falando sério, se você tem coçado a cabeça com esse soluço do Windows, uma das correções básicas é renomear a pasta pai.

Suponha que você tenha uma pasta (contendo arquivos importantes) com um nome longo que deseja mover ou copiar para outra localização. Renomear a pasta pai ajudará a evitar o erro “Caminho de Destino Muito Longo”.

Para ver como reduzir o comprimento do caminho do arquivo funciona, siga estas etapas:

1. Localize a pasta com o caminho longo, conforme mostrado abaixo, onde o nome da pasta é um monte de letras e números aleatórios.

Um dos principais culpados por esta mensagem enigmática é o limite de MAX_PATH (260 caracteres) imposto pelo sistema operacional Windows. Esse limite visa manter a compatibilidade entre várias aplicações e sistemas.

Locating the folder with a long name

2. Renomeie o nome da pasta para um mais curto (por exemplo, Backup-01).

Renaming the folder

3. Agora, copie ou mova a pasta renomeada para o local desejado e veja se ainda ocorre o erro “Caminho de Destino Muito Longo”.

Copying or moving the renamed folder to a different location

Realizando Operações de Arquivos em Caminhos de Arquivo Longos via 7-zip

Se alterar o nome da pasta ou do arquivo não for uma consideração crítica, um remédio rápido seria renomeá-los, evitando assim o erro “Caminho de Destino Muito Longo”.

Mas se preservar os nomes existentes for fundamental, existe uma abordagem viável sem acionar o erro? Sim, usando o 7-zip, uma ferramenta robusta de compressão e arquivamento de arquivos.

Para realizar operações de arquivos em caminhos de arquivo longos via 7-zip, siga as etapas abaixo:

1. Inicie o gerenciador de arquivos 7-zip a partir do menu Iniciar ou do atalho na área de trabalho.

2. Em seguida, localize e clique com o botão direito do mouse no arquivo ou pasta de destino e escolha uma operação de arquivo no menu de contexto. Mas neste exemplo, copie o arquivo (Copiar para) para outro local.

Observe que o arquivo de texto possui um caminho de arquivo ridiculamente longo.

Locating the target file or folder in 7-zip

3. Navegue até o local de destino do arquivo na caixa de diálogo e clique em OK para confirmar a cópia do arquivo.

7-zip ignora as restrições do Win32API no comprimento máximo do caminho, o que permite realizar operações de arquivo em arquivos e diretórios.

Setting the file’s destination

4. Por fim, vá para o local de destino e verifique se o arquivo que você copiou existe.

Esse resultado confirma que você copiou com sucesso o arquivo, ultrapassando o limite MAX_PATH via 7-zip.

Verifying the file copied via 7-zip exists in the target location

Ativando o Suporte a Caminhos Longos Win32 no Windows

Talvez você prefira soluções baseadas no Windows em vez de depender de ferramentas de terceiros como o 7-zip ao lidar com caminhos de arquivo longos. Se for o caso, ativar o suporte a caminhos longos Win32 no Windows oferece uma abordagem nativa e integrada para superar o notório erro “Caminho de Destino Muito Longo”.

Ao desbloquear o suporte a caminhos longos Win32, você capacita seu sistema Windows a lidar com caminhos de arquivo extensos de forma elegante, sem a necessidade de aplicativos externos. Essa funcionalidade oferece uma solução personalizada que está alinhada com sua preferência por funcionalidades nativas do Windows.

Leia e explore diferentes métodos para ativar o suporte a caminhos longos Win32.

Usando o Editor de Registro

Uma via importante para ativar o suporte a caminhos longos Win32 está em utilizar o poder do Editor de Registro. Este centro de controle digital atua como o coração pulsante do seu sistema Windows, permitindo ajustar configurações com precisão.

Para ativar o suporte a caminhos longos Win32 via Editor de Registro, siga as seguintes etapas:

1. Abra a caixa de diálogo Executar (Win + R), digite regedit, e pressione Enter (ou clique em OK) para iniciar o Editor de Registro.

Launching the Registry Editor via the Run dialog

? IMPORTANTE: Antes de fazer qualquer alteração no Editor de Registro, faça um backup do registro. Este backup é uma proteção, permitindo que você restaure o registro em caso de complicações ou problemas inesperados.

2. Navegue até a chave a seguir ou cole a chave na barra de endereços para acessar diversas configurações relacionadas ao comportamento do sistema de arquivos.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem
Accessing settings and configurations related to the file system behavior

3. Procure e clique duas vezes na entrada LongPathsEnabled (painel à direita) para acessar seus dados associados e altere o Valor dos dados de 0 para 1.

Esta entrada indica ao sistema para ativar o suporte a caminhos longos do Win32.

Enabling the Win32 long path support via the LongPathEnabled entry in Registry Editor

4. Saia do Editor de Registro e reinicie seu sistema Windows para aplicar as alterações.

5. Agora, realize operações de arquivo, como copiar ou mover arquivos ou pastas com caminhos de arquivo longos, para ver se você consegue evitar o erro “Caminho de Destino Muito Longo”.

? Infelizmente, neste momento da escrita, o Explorador de Arquivos nativo no Windows 10 e no Windows Server 2022 ainda enfrenta limitações no suporte a caminhos longos NTFS. Se você costuma trabalhar com caminhos de arquivo longos em seu fluxo de trabalho, existem gerenciadores de arquivos de terceiros gratuitos aos quais você pode recorrer, como OneCommander e TotalCommander.

Usando o Editor de Políticas de Grupo (GPE)

Adentrar nas complexidades de habilitar o suporte a caminhos longos do Win32 revela uma miríade de abordagens, e entre as mais refinadas está o aproveitamento do GPE. Pense no GPE como sua caixa de ferramentas personalizada para ajustar as funcionalidades do Windows.

Ao capacitar seu sistema com capacidades de caminhos estendidos, o GPE assume o centro do palco, oferecendo um método centralizado e sistemático.

Para habilitar o suporte a caminhos longos do Win32 via GPE, siga os passos abaixo:

1. Abra o GPE (gpedit.msc) via a caixa de diálogo Executar, conforme mostrado abaixo.

O GPE é um snap-in do Console de Gerenciamento Microsoft (MMC) que fornece uma interface gráfica para gerenciar configurações de política no Windows.

Opening the GPE via the Run dialog

2. Em seguida, inicie a habilitação do suporte a caminhos longos do Win32 na janela principal do GPE da seguinte forma:

  • Navegue até Configuração do ComputadorModelos AdministrativosSistemaSistema de Arquivos na árvore do console (painel esquerdo). Isso permite acessar as configurações de política relacionadas ao sistema de arquivos.
  • Procure e dê um duplo clique na configuração de política Habilitar caminhos longos do Win32 (painel direito). Uma caixa de diálogo de configuração para a configuração de política selecionada aparece (passo três).
Accessing the configuration dialog for the “Enable Win32 long paths” policy setting

3. Em seguida, escolha a opção Habilitado na caixa de diálogo de configuração e clique em OK para habilitar o suporte a caminhos longos do Win32 para o Windows.

Enabling the Win32 long paths support for Windows via GPE

4. Agora, copie ou mova arquivos ou pastas com caminhos de arquivo longos para testar o suporte a caminhos longos do Win32.

Criando Links Simbólicos para Caminhos Longos

Além de ativar o suporte a caminhos longos Win32, outra opção para contornar as restrições de caminhos de arquivo extensos é criar atalhos digitais, também conhecidos como links simbólicos.

Criar um link simbólico é semelhante a colocar uma porta oculta em seu arquivo. Abra-a e encontrará uma via expressa para seus arquivos sem comprometer a estrutura existente.

Para criar links simbólicos para caminhos longos, siga as etapas abaixo:

1. Inicie o Prompt de Comando como administrador e execute o seguinte comando mklink para criar um link simbólico de diretório (/D) no caminho de destino especificado (ou seja, C:\pasta-link).

O link simbólico aponta para sua pasta com um caminho excessivamente longo. Portanto, substitua <symlink> pelo caminho de destino e <long-path> pelo seu caminho longo.

mklink /D <symlink> <long-path>
Creating a symbolic link for a folder

2. Em seguida, execute o comando dir abaixo para verificar se seu link simbólico de diretório existe.

dir <symlink>
Checking if the directory symbolic link exists

3. Dentro da sua pasta de caminho longo, crie um arquivo de texto chamado symlink.txt, que serve como prova de que seu link simbólico está funcionando.

? Este tutorial utiliza um gerenciador de arquivos de terceiros chamado Directory Opus, semelhante ao XYplorer. Ambos são gerenciadores de arquivos ricos em recursos projetados para aprimorar a experiência de gerenciamento de arquivos no Windows.

Creating a text file to serve as proof that the symbolic link works

4. Por último, localize e navegue dentro do link simbólico do diretório recém-criado em seu gerenciador de arquivos para confirmar que ele aponta para a sua pasta de caminho longo.

Agora, você pode copiar ou mover arquivos para sua pasta de destino, ignorando o limite de MAX_PATH.

Verifying the directory symbolic link points to the long path folder

Utilizando o Comando Robocopy para Operações de Arquivo

Talvez criar um link simbólico não faça parte do seu plano, mas você está procurando uma operação de arquivo direta, como copiar arquivos de e para pastas com caminhos de arquivo longos. Se for esse o caso, você precisará do Robocopy, uma solução poderosa para transformar suas preocupações com transferência de arquivos em uma experiência perfeita.

Para realizar operações de arquivo via comando Robocopy, siga estes passos:

1. Abra o PowerShell como administrador e execute os seguintes comandos para declarar variáveis que guardarão os caminhos de origem e destino do seu arquivo alvo.

Esses comandos não têm saída, mas certifique-se de substituir os espaços reservados <source> e <destination> de acordo.

$srcPath=<source>
$destPath=<destination>
Declaring variables to hold the target file’s source and destination paths

2. Em seguida, execute o comando robocopy abaixo para copiar o arquivo symlink.txt e todas as suas informações (/COPYALL) da origem ($srcPath) para o destino ($destPath).

Este comando garante que o arquivo de destino seja copiado sem esperar (/W:0) ou tentar novamente (/R:0) em caso de erros durante a operação de cópia.

robocopy $srcPath $destPath symlink.txt /COPYALL /W:0 /R:0

? Talvez você queira mover o arquivo para um local diferente. Se for o caso, substitua /COPYALL pela opção /MOVE, conforme mostrado abaixo. Esta opção instrui o robocopy a realizar uma operação de “cortar e colar”.

robocopy $srcPath $destPath symlink.txt /MOVE /W:0 /R:0

A saída abaixo confirma que você copiou com sucesso um arquivo, independentemente do caminho longo.

Copying a file via the robocopy command bypassing the MAX_PATH limit

3. Agora, execute o cmdlet Get-ChildItem abaixo para verificar se o arquivo copiado existe na sua localização especificada.

Get-ChildItem $destPath
Verifying the copied file exists in the specified location

Aproveitando o Parâmetro -LiteralPath nos cmdlets do PowerShell

Você já aproveitou o poder do Robocopy para navegar pelos caminhos intricados da gestão de arquivos. No entanto, uma pergunta persiste: Como você pode aprimorar ainda mais o seu controle e precisão no manuseio das operações de arquivo?

O PowerShell oferece cmdlets com parâmetros, como -LiteralPath, que permitem que você conquiste as complexidades da gestão de arquivos.

Para realizar operações de arquivo usando o parâmetro -LiteralPath, execute o seguinte:

1. Abra o PowerShell como administrador e execute os seguintes comandos para declarar variáveis que armazenarão o caminho do arquivo de origem e os caminhos de destino.

Certifique-se de substituir <source\symlink.txt> pelo caminho completo do seu arquivo e <destination> pelo caminho de destino desejado.

$srcPath=<source\symlink.txt>
$destPath=<destination>

2. Em seguida, execute o comando Copy-Item abaixo para copiar o arquivo symlink.txt para o destino especificado ($destPath). O parâmetro -LiteralPath permite que você especifique o caminho do arquivo de maneira literal, sem interpretação de caracteres curinga.

Este comando, quando bem-sucedido, não gera saída no console, mas você verificará o resultado na etapa seguinte.

Copy-Item -LiteralPath $srcPath -Destination $destPath

? Quando necessário, o -LiteralPath também funciona com outros cmdlets para operações de arquivo, como Move-Item, Rename-Item e Remove-Item.

3. Por fim, execute o comando Get-ChildItem abaixo para listar arquivos e pastas no caminho de destino ($destPath).

Get-ChildItem $destPath
Verifying the file has been copied successfully to the destination path

? Embora o -LiteralPath funcione tão bem quanto o faz, este parâmetro é principalmente usado para especificar o caminho de origem ou o nome do arquivo. Mas em cenários de script, o -LiteralPath garante que seu script opere nos caminhos exatos especificados, reduzindo o risco de erros devido a interpretações de caracteres inesperadas.

Extraindo Arquivos de Arquivo via Comando Expand-Archive

Suponha que você tenha baixado um arquivo de arquivo (ZIP) com um nome absurdamente longo que deseja extrair sem alterar o nome. Nesses casos, o comando Expand-Archive do PowerShell pode ser uma solução prática.

O comando Expand-Archive permite descompactar ou extrair arquivos de um arquivo, proporcionando a flexibilidade de lidar com caminhos longos.

Para extrair arquivos de arquivo usando o comando Expand-Archive, siga estas etapas:

1. Execute os seguintes comandos no PowerShell (como administrador) para declarar variáveis para armazenar o caminho completo do seu arquivo de arquivo e o caminho de destino.

$srcPath=<source\file.zip>
$destPath=<destination>

2. Com as variáveis declaradas, execute o comando Expand-Archive abaixo, que não fornece saída, mas extrai o arquivo de arquivo para o destino especificado.

Expand-Archive -Path $srcPath -DestinationPath $destPath

3. Por fim, execute o comando Get-ChildItem abaixo para visualizar a lista de arquivos e pastas dentro do caminho de destino ($destPath).

Get-ChildItem $destPath

Observe dois itens na saída: o arquivo de arquivo (texto em vermelho) e a pasta extraída (destacada em azul). Esta saída confirma que você extraiu com sucesso seu arquivo de arquivo sem acionar o erro “Caminho de Destino Muito Longo”.

Verifying the contents of the destination path

Conclusão

Ao longo dessa jornada, você cobriu um arsenal de estratégias para conquistar o notório erro “Caminho de Destino Muito Longo” no Windows. Você explorou várias técnicas, desde renomear pastas pai até a habilidade do 7-zip e habilitar o suporte a caminhos longos do Win32.

Brazilian Portuguese Translation:
Links simbólicos ofereceram uma solução inteligente, e o poderoso Robocopy demonstrou sua destreza em operações eficientes de arquivos. Sua incursão no PowerShell destacou a utilidade do parâmetro -LiteralPath e do comando Expand-Archive. Todos esses recursos se mostraram inestimáveis para extrair arquivos sem sucumbir às restrições de comprimento do caminho.

Agora, por que não considerar a combinação dessas estratégias para criar soluções robustas adaptadas aos seus desafios específicos? Experimente criar scripts no PowerShell, integrando links simbólicos quando necessário, e ajustando suas operações de arquivos com o Robocopy.

Lembre-se, a chave está não apenas em resolver o problema imediato, mas também em entender como esses métodos podem trabalhar harmoniosamente para enfrentar uma variedade de desafios relacionados a arquivos.

Source:
https://adamtheautomator.com/destination-path-too-long/