Como copiar arquivos que possuem um caminho de arquivo muito longo no Windows?

51

Preciso fazer backup de alguns arquivos em um compartilhamento de rede. No entanto, preciso copiar esses arquivos para minha unidade local antes de gravar os discos, pois esses arquivos podem estar em uso. Alguns dos arquivos não serão copiados porque o caminho do arquivo é muito longo. Existe alguma solução alternativa além de alterar a estrutura do arquivo?

Brian Sturm
fonte
1
Consulte também Limitação do nome do caminho da janela 256 caracteres .
Gilles 'SO- stop be evil'

Respostas:

27

O comprimento máximo do caminho é 260 no Windows Vista / 7. Eu posso recomendar três soluções:

  • (se o caminho for muito longo) Primeiro copie a pasta para os níveis superiores no Windows Explorer e depois mova-a para o computador local
  • (se os nomes dos arquivos forem muito longos) Primeiro tente compactá-los com um aplicativo de archive / rar / 7z e, em seguida, copie o arquivo no computador local e depois extraia o conteúdo.
  • Use aplicativos de terceiros.

Todas essas sugestões pressupõem que você tenha algum tipo de acesso de gravação na pasta / computador compartilhado da rede. Se você não conseguir fazer nada disso, poderá precisar da ajuda do seu administrador.

Gani Simsek
fonte
8
fechando os arquivos funcionou!
Brian Sturm
@BrianSturm, Bem, assumindo que eles estão 3ª partido apps
Pacerier
Embora eu realmente odeie isso no Windows ... a solução zip realmente salvou meu dia. Obrigado!
Bas Slagter
66
robocopy /E source destination

Cópia robusta de arquivos e pastas .

Windows 7 e superior:
Robocopy XP027 é um comando padrão no Windows 7 e superior.

NT 4 / Windows 2000:
As ferramentas do Windows Server 2003 Resource Kit incluem o Robocopy XP010,
que pode ser executado no NT 4 / Windows 2000.

Windows 95 ou NT 3.5: o
Robocopy não é executado no Windows 95 ou NT 3.5. (Robocopy é um aplicativo Unicode).


Solução alternativa para Windows 95 ou NT 3.5: A GUI do Microsoft Robocopy instalará o Robocopy XP026 em C: \ Windows \ system32,
esta versão pode ser executada em sistemas operacionais mais antigos
e inclui alguns recursos do XP027 (/ BYTES), mas interrompeu o tratamento do nível de erro de forma competitiva.

Robocopy 'Jobs' e a opção 'Monitor source' fornecem uma alternativa para configurar uma Tarefa agendada para executar um arquivo em lote com um comando Robocopy.

user19496
fonte
6
Essa é a solução. Se você deseja desativar o suporte para caminhos com comprimento maior que 256, passe o /256sinalizador. Muito obrigado! Eu lutei com isso o dia todo.
Automatico
1
surpreendente! Solução que eu nunca conheci até agora nesta solução de integração.
214158Preço
2
Ótima solução - algumas notas adicionais: (1) o destino deve incluir o nome da pasta se estiver copiando a pasta - por exemplo, se estiver copiando C: \ Windows para D: \ Windows, o comando seria robocopy /E C:\Windows D:\Windows(por exemplo, não robocopy / EC: \ Windows D: \ ) (2) Pode mover arquivos em vez de copiá-los usando a /MOVEopção
31817 Steve Chambers
No Windows, esta é uma solução confiável para o uso do NAS. Você pode iniciar uma cópia de milhões de arquivos e, se a transferência for interrompida no meio do processo, ela continuará onde parou, sem copiar novamente todos os arquivos que já foram transferidos. É realmente valioso quando você tem uma conexão Wifi que cai intermitentemente e ainda deseja mover um grande número de arquivos com conclusão garantida.
User19496
Isso não funciona para arquivos que possuem nomes inválidos no Windows. Existe uma bandeira para isso que ajudará?
Richard
16

Você pode acessar comprimentos de caminho de até ~ 32k caracteres prefixando com \\?\.

\\?\C:\Some\Really\Long\Path

Isso funciona no prompt de comando e em qualquer outro programa que use os métodos Win32 Unicode Api, incluindo aplicativos .Net. Ele requer um sistema de arquivos que suporte caminhos longos (por exemplo, NTFS), mas se você tiver um problema de caminho longo, isso é um dado.

Observe que certos aplicativos e muitas ferramentas nativas (como o Explorer) terão problemas com esses caminhos; portanto, use isso para sair de um buraco, não em um.

Basic
fonte
2
Esta é realmente uma ótima dica. Também trabalho para lidar com nomes de arquivos com1, com2 etc.
Andreas Reiff
2

O FastCopy é um projeto C de código aberto escrito por SHIROUZU Hiroaki e é "O Software de Cópia / Exclusão Mais Rápido no Windows". Ele suporta UNICODE e sobre nomes de caminhos de arquivos MAX_PATH (260 caracteres).

Se você tiver centenas de caminhos que são muito longos para corrigir, use a ferramenta " Fixador longo e longo da ferramenta Path Tool "

Markus
fonte
2
FastCopy é realmente excelente. Em particular, diferentemente do RoboCopy, ele faz coisas úteis com junções de diretório / links flexíveis.
Rlpowell
Excelente. Como alternativa, há uma resposta SO que lista os programas de cópia rápida semelhantes que também são geralmente compatíveis com o caminho estendido.
ingyhere
-3

A correção mais rápida que usei nessa situação foi renomear as pastas de nome longo para algo como "1".

Além disso, como prática geral, tento explicar a todos os usuários para não colocar sua história de vida em um nome de arquivo ou pasta.

Qualquer gerenciador de arquivos decente pode lidar com mais de 260 nomes de arquivos de caracteres.

Overmind
fonte