Abordando 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 vencer o dilema do “Caminho de Destino Muito Longo”.

Agora, se você está cansado de sentir que seu computador está dificultando as coisas, continue por aqui para se livrar desta irritante mensagem de erro do Windows!

Pré-requisitos

Antes de superar 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 desta escrita.

Desmistificando o Erro “Caminho de Destino Muito Longo”

Esta mensagem críptica, “Caminho de Destino Muito Longo”, como a 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 usuários lidando com diretórios profundamente aninhados, estruturas de pastas intricadas e nomes de arquivos 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 decida repentinamente canalizar seu Shakespeare interior e declara: “Mover ou não mover, eis a questão.” Mas falando sério, se você tem coçado a cabeça por causa desse 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 a redução do 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 caminho máximo (MAX_PATH) (260 caracteres) imposto pelo sistema operacional Windows. Este 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 a sua localização preferida e veja se ainda recebe 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 Arquivos Longos via 7-zip

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

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

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

1. Inicie o gerenciador de arquivos 7-zip no menu Iniciar ou no atalho da área de trabalho.

2. Em seguida, localize e clique com o botão direito 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 outra localização.

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é a localização de destino do arquivo na caixa de diálogo e clique em OK para confirmar a cópia do arquivo.

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

Setting the file’s destination

4. Por último, navegue até o local de destino e verifique se o arquivo que você copiou existe.

Este resultado confirma que você copiou o arquivo com sucesso, contornando 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 do Win32 no Windows

Talvez você queira ficar com 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, habilitar o suporte a caminhos longos do Win32 no Windows oferece uma abordagem nativa e integrada para superar o famoso erro “Caminho de Destino Muito Longo”.

Ao desbloquear o suporte a caminhos longos do Win32, você capacita seu sistema Windows a lidar elegantemente com caminhos de arquivo extensos sem precisar de aplicativos externos. Esta funcionalidade oferece uma solução personalizada que se alinha com sua preferência por funcionalidades nativas do Windows.

Continue lendo e explore diferentes métodos para habilitar o suporte a caminhos longos do Win32.

Usando o Editor de Registro

Uma das principais formas de habilitar o suporte a caminhos longos do 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 que você ajuste configurações com precisão.

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

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

Launching the Registry Editor via the Run dialog

? **IMPORTANTE:** Antes de fazer quaisquer alterações no Editor de Registro, faça um backup do registro. Esse backup é uma salvaguarda que permite restaurar o registro em caso de complicações ou problemas inesperados.

2. Navegue até a seguinte chave ou cole-a na barra de endereços para acessar várias 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 alterar o Valor dos dados de 0 para 1.

Essa entrada indica ao sistema para habilitar 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, execute operações de arquivo como copiar ou mover arquivos ou pastas com caminhos de arquivo longos para ver se você consegue contornar o erro “Caminho de Destino Muito Longo”.

? Infelizmente, no momento desta 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ítica de Grupo (GPE)

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

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

Para habilitar o suporte a caminhos longos 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 complemento do Console de Gerenciamento Microsoft (MMC) que fornece uma interface gráfica para gerenciar configurações de políticas no Windows.

Opening the GPE via the Run dialog

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

  • Navegue até Configuração do ComputadorModelos AdministrativosSistemaSistema de Arquivos na árvore de consoles (painel à esquerda). Isso permite acessar as configurações de política relacionadas ao sistema de arquivos.
  • Procure e clique duas vezes na configuração de política Habilitar caminhos longos Win32 (painel à direita). 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. Posteriormente, escolha a opção Habilitado na caixa de diálogo de configuração e clique em OK para habilitar o suporte a caminhos longos 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 Win32.

Criando Links Simbólicos para Caminhos Longos

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

Criar um link simbólico é semelhante a colocar uma porta oculta em sua gaveta de arquivos. 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 pasta do seu 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 seu link simbólico de diretório recém-criado em seu gerenciador de arquivos para confirmar se ele aponta para a sua pasta de caminho longo.

Agora, você pode copiar ou mover arquivos para sua pasta de destino, ignorando o limite 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 por uma operação de arquivo direta, como copiar arquivos de e para pastas com caminhos de arquivo longos. Se for o caso, você vai precisar do Robocopy, uma solução poderosa para transformar suas preocupações com transferência de arquivo em uma experiência tranquila.

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 para armazenar os caminhos de origem e destino do seu arquivo alvo.

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

$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 aguardar (/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, como 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 localização especificada.

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

Aproveitando o Parâmetro -LiteralPath em cmdlets do PowerShell

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

O PowerShell oferece cmdlets com parâmetros, como -LiteralPath, que permitem que você domine as complexidades da gerência 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 para armazenar 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 preferido.

$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 forma literal, sem interpretação de caracteres curinga.

Este comando, quando bem-sucedido, não apresenta 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 faz, este parâmetro é usado principalmente 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.

Extração de 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 que você descompacte ou extraia arquivos de um arquivo, fornecendo a flexibilidade para lidar com caminhos longos.

Para extrair arquivos de arquivamento usando o comando Expand-Archive, siga as etapas abaixo:

1. Execute os seguintes comandos no PowerShell (como administrador) para declarar variáveis que armazenarão o caminho completo do seu arquivo de arquivamento 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 gera saída, mas extrai o arquivo de arquivamento 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 arquivamento (texto em vermelho) e a pasta extraída (destacada em azul). Essa saída confirma que você extraiu com sucesso seu arquivo de arquivamento sem acionar o erro “Caminho de Destino Muito Longo”.

Verifying the contents of the destination path

Conclusão

Ao longo desta jornada, você explorou um arsenal de estratégias para superar o notório erro “Caminho de Destino Muito Longo” no Windows. Você explorou várias técnicas, desde renomear pastas principais até a eficácia do 7-zip e a ativação do suporte a caminhos longos do Win32.

Os links simbólicos ofereceram uma solução inteligente, e o poderoso Robocopy demonstrou sua eficácia para operações eficientes de arquivos. Sua incursão no PowerShell destacou a utilidade do parâmetro -LiteralPath e do comando Expand-Archive. Tudo isso se mostrou inestimável 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 aprimorando suas operações de arquivo 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 funcionar harmoniosamente para enfrentar uma variedade de desafios relacionados a arquivos.

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