Problema do MS Windows - “Nome do arquivo ou extensão é muito longo”

2

Eu executo o Microsoft Windows em algumas das minhas máquinas. Eu não sei se muitas pessoas sabem sobre esse problema no sistema operacional, mas você não pode ter nomes de arquivo muito longos, pelo que eu sei que o Linux pode ter nomes mais longos, nunca encontrei esse problema em minhas máquinas Linux.

De qualquer forma, tenho problemas sempre que copio pastas & arquivos para unidades de backup. Eu manualmente backup dos meus dados, encontrar e alterar nomes de arquivos, isso é muito muito tedioso.

Existe uma ferramenta de software para encurtar pastas ou nomes de arquivos que são encontrados no Windows?

Eu tenho um software de duplicação de imagens de disco que faz o trabalho, mas de uma maneira que eu não gosto, além de que mover arquivos pode se tornar um incômodo, às vezes, se os nomes forem muito longos para serem copiados.

    
por Daniel 30.05.2009 / 05:55

4 respostas

3

Muitas vezes, você pode compactar os arquivos em um arquivo para contornar a limitação de comprimento ao mover estruturas de arquivos de nomes longos / longos de uma máquina para outra.

    
por 30.05.2009 / 06:15
7

Basta mencionar um truque que não vejo mencionado aqui ainda.

Pegue este arquivo por exemplo:

C:\Folder1\Really Long Path\Such Recursion\So Deep\Wow\Still Going\I will run out of ideas soon\I have organizational problems\Obsessive compulsive subdirectory disorder\Here is a guid for no good reason6DA01F-9ABD-4d9d-80C7-02AF85C822A8\Almost there\Tax Returns1313_tax_return.pdf

Este caminho de arquivo completo tem 290 caracteres. O shell (Windows Explorer) e a maioria dos utilitários de linha de comando provavelmente não permitem que você o toque.

Use o comando subst da seguinte forma:

subst X: "C:\Folder1\Really Long Path\Such Recursion\So Deep\Wow"

Agora você pode acessar (e excluir, mover, etc.) o arquivo desta forma:

X:\Still Going\I will run out of ideas soon\I have organizational problems\Obsessive compulsive subdirectory disorder\Here is a guid for no good reason6DA01F-9ABD-4d9d-80C7-02AF85C822A8\Almost there\Tax Returns1313_tax_return.pdf

E agora esse nome de arquivo tem apenas ~ 235 caracteres ou mais, então você não encontrará mais nenhum problema com o "Nome do arquivo é muito longo".

Na API do Windows, existe uma constante infame conhecida como MAX_PATH . MAX_PATH tem 260 caracteres. O sistema de arquivos NTFS na verdade suporta caminhos de arquivo de até 32.767 caracteres. E você ainda pode usar 32.767 nomes de caminho de caracteres longos, acessando as versões Unicode (ou "ampla") das funções da API do Windows e também prefixando o caminho com \?\ .

MAX_PATH foi definido em um muito longo tempo atrás no mundo do Windows. Eu acho que tem algo a ver com os padrões ANSI na época ... mas é uma daquelas coisas que é muito difícil para a Microsoft mudar agora, pois agora temos milhares de programas e aplicativos, incluindo alguns escritos pela própria Microsoft, que usam MAX_PATH e falharia de novas maneiras estranhas se a constante fosse repentinamente alterada. (Buffer overflows, corrupção de pilha, etc.)

    
por 25.12.2014 / 18:10
3

Veja o link

Se você usar um caminho completo, ou seja, começando com a letra da unidade e prefixando o nome do arquivo com \\? \, poderá contornar o limite de 260 caracteres.

JR

    
por 30.05.2009 / 08:07
1

Como mencionado anteriormente, unir um arquivo zip é uma opção.

Outra opção pode ser criar um script que use apenas os nomes abreviados do Windows para o destino. Isso tem a desvantagem de renomear permanentemente todos os seus arquivos, a menos que você crie uma maneira de rastrear os nomes antigos e novos dos arquivos. Eu estava apenas brincando com algum VBScript no trabalho hoje que faria exatamente isso.

Uma solução mais custosa pode ser criar uma configuração de espelho com um segundo disco rígido.

    
por 30.05.2009 / 07:47