Nome do arquivo longo demais para copiar, mas não diz qual deles

0

Eu estava copiando um monte de arquivos, mas não consegui copiar alguns, porque o nome era muito longo. Existe uma maneira fácil de encurtar os nomes ou posso pelo menos saber o caminho para onde o nome do arquivo se torna muito longo?

EDIT: por monte de arquivos quero dizer que existem dois diretórios cada contendo arquivos e mais directoris contendo mais arquivos etc. Eu estou simplesmente copiando por ctrl + c

    
por Celeritas 12.01.2013 / 20:50

5 respostas

1

Você pode usar o Path Scanner para localizar os arquivos incorretos. (Vá até o final para o Old Path Scanner)

    
por 12.01.2013 / 20:57
1

Eu sugeriria Robocopy , incorporado em Windows 7 .

robocopy <Source> <Destination> [<File>[ ...]] [<Options>]
    
por 12.01.2013 / 21:18
0

Se você está bem com uma solução de linha de comando, o utilitário cp que incluo com shell Hamilton C será fácil copie seus arquivos sem precisar encurtar nada. (Divulgação completa: eu sou o autor.) Como o resto dos meus utilitários de arquivos básicos, ele usa longos nomes de arquivos Unicode internamente para suportar comprimentos de caminho de até 32K caracteres, o limite do sistema.

Se isso é uma coisa única (e possivelmente, mesmo que não seja), tudo o que você precisa é da versão gratuita . Deixe-me saber se encontrar um problema ou precisar de ajuda para fazer o que você quer.

    
por 13.01.2013 / 10:51
0

Você não diz qual sistema operacional está usando. Se o Windows, TeraCopy é um ótimo programa (a versão gratuita perfeita para a maioria de todos) que Eu uso para copiar / mover arquivos. Ao contrário do Windows, o TeraCopy não falhará completamente quando for encontrado em arquivos problemáticos. Pode ser usado conforme necessário ou substituir a funcionalidade de cópia do Windows por sua própria. Aqui está uma sinopse:

TeraCopy is designed to copy and move files at the maximum possible speed. It skips bad files during the copying process, and then displays them at the end of the transfer so that you can see which ones need attention. TeraCopy can automatically check the copied files for errors by calculating their CRC checksum values. It also provides a lot more information about the files being copied than its Windows counterpart. TeraCopy integrates with Windows Explorer's right-click menu and can be set as the default copy handler

    
por 13.01.2013 / 11:40
0

Para resolver o problema, você precisa encontrar os arquivos incorretos onde o caminho completo e o nome do arquivo são maiores que 255 caracteres. Como encontrar o comprimento em um arquivo de lote é um pouco de um jantar de cães, eu uso o seguinte VBScript.

Salve o código abaixo em um arquivo chamado longpaths.vbs . Execute-o em um prompt de comando do DOS com o seguinte cscript longpaths.vbs <path> <length> , em que <path> é o local da pasta (não esqueça de colocar entre aspas se tiver espaço) e <length> é o comprimento do caminho acima que deve sinalizar.

O código é o seguinte:

Option Explicit
If WScript.Arguments.Count <> 2 Then
    WScript.Echo "Usage: " & WScript.ScriptName & " <path> <max length>"
    WScript.Quit
End If
Dim fso : Set fso = CreateObject("Scripting.FileSystemObject")
If fso.FolderExists(WScript.Arguments(0)) = False Then
    WScript.Echo WScript.Arguments(0) & " - Invalid path or no such folder."
    WScript.Quit
End If
Dim oFolder : Set oFolder = fso.GetFolder(WScript.Arguments(0))
Dim iLength : iLength = CInt(WScript.Arguments(1))
Dim iCount : iCount = 0
WScript.Echo "Looking for paths longer than " & iLength & " characters in " & oFolder.Path
On Error Resume Next
Call ScanFolder(oFolder)
On Error Goto 0
WScript.Echo "Found " & iCount & "."
WScript.Quit
Sub ScanFolder(oScanFolder)
    Dim oFile : For Each oFile in oScanFolder.Files
        If Len(oFile.Path) > iLength Then
            WScript.Echo oFile.Path
            iCount = iCount + 1
        End If
    Next
    For Each oFile in oScanFolder.SubFolders
        Call ScanFolder(oFile)
    Next
End Sub

Uso e saída de amostra:

D:\Development>cscript longpath.vbs c:\Windows 210
Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.

Looking for paths longer than 210 characters in C:\Windows
C:\Windows\assembly\GAC_MSIL\Microsoft.Security.ApplicationId.Wizards.AutomaticRuleGenerationWizard.resources.1.0.0_en_31bf3856ad364e35\Microsoft.Security.ApplicationId.Wizards.AutomaticRuleGenerationWizard.resources.dll
Found 1.

D:\Development>

Depois de conhecer os arquivos com problema, você pode renomeá-los para ficarem mais curtos, renomear uma das pastas nesse caminho ou (possivelmente) mapear uma unidade de rede para uma subpasta nesse caminho, o que reduzirá a duração o caminho.

    
por 13.01.2013 / 15:50