Alternativa para o Windows Explorer para nomes de caminho longos

24

Atualização:

  1. Descobri que não apenas o Windows Explorer, mas também outros softwares sofre de nomes de caminho muito longos. Por exemplo, no Firefox, quando eu salvar uma página da Web em um diretório, ainda não posso fazê-lo se o seu nome ou o nome do caminho é muito longo. O Firefox também conta com o Windows Explorer? Como posso resolver esse problema também?

  2. Eu tentei o software recomendado nas duas respostas. Nenhum eles podem acessar um caminho longo. O problema do caminho longo é inerente a Windows OS, independentemente de qual programa para procurar diretórios? E se Sim, isso significa que não há como contornar isso?

Original: tenho dois sistemas operacionais instalados no meu laptop: o Windows 7 e o Ubuntu 10.10. Eles compartilham uma partição.

No Ubuntu, usando o Nautilus, posso criar diretórios localizados muito profundamente na hierarquia de caminhos da partição compartilhada. Mas ao alternar para o Windows, o Windows Explorer não permite acessar diretórios localizados muito fundo, ou seja, ter um nome de caminho muito longo.

O Windows Explorer também não consegue acessar arquivos e diretórios criados no Ubuntu com caracteres especiais em nomes de diretórios e arquivos.

Eu queria saber o que pode resolver o problema no Windows? Por exemplo, existem outros softwares alternativos para substituir o Windows Explorer?

    
por Tim 09.08.2011 / 12:55

5 respostas

29

Embora o NTFS permita caminhos com cerca de 32.000 caracteres, você encontrou o comprimento do caminho de 259 caracteres limitação da API do Win32 .

In the Windows API (with some exceptions discussed in the [linked document]), the maximum length for a path is MAX_PATH, which is defined as 260 characters.

(Há adicionalmente um caractere de terminação NULL anexado ao caminho, dando-nos 259 caracteres utilizáveis.)

Como o Explorer (e quase todos os outros aplicativos do Windows) contam com a API do Win32 para acesso ao sistema de arquivos, não é prático contornar essa limitação, embora seja possível :

The Windows API has many functions that also have Unicode versions to permit an extended-length path for a maximum total path length of 32,767 characters. This type of path is composed of components separated by backslashes, each up to the value returned in the lpMaximumComponentLength parameter of the GetVolumeInformation function (this value is commonly 255 characters). To specify an extended-length path, use the "\?\" prefix. For example, "\?\D:\very long path".

Infelizmente, você não pode simplesmente digitar \?\D:\very long path em uma janela do Explorer. O aplicativo deve ser projetado para aproveitar essas APIs e lidar com nomes de caminho muito longos.

Uma maneira de acessar caminhos de comprimento estendido no Windows é instalar o Cygwin , uma camada de emulação * nix para Windows. Nos meus testes, o Cygwin não parece estar limitado por MAX_PATH ; bash e vi não tiveram problemas com caminhos de 2.000 caracteres.

Lembre-se de que, mesmo que você possa usar o bash para procurar caminhos de comprimento estendido, provavelmente não conseguirá abrir arquivos nesses caminhos em aplicativos normais do Windows. Por exemplo, digitar notepad enquanto o diretório de trabalho é um caminho de comprimento estendido leva você

Error: Current working directory has a path longer than allowed for a Win32 working directory. Can't start native Windows application from here.

E tentar notepad "\?\D:\very long path\file.txt" também não funciona; lança, mas apenas diz "Não é possível encontrar o arquivo ..." Tentando o mesmo com O Notepad ++ trava. (Provavelmente um estouro de buffer.)

Sua outra opção para acessar arquivos específicos enterrados em um caminho de extensão estendida é encurtar o caminho em si criando um NTFS ponto de junção . De um prompt de comando elevado:

D:\> mklink /J jct "\?\D:\very\long\path"

Agora você pode acessar o conteúdo de D:\very\long\path\ de D:\jct\ . Você não atingirá nenhum problema de comprimento de caminho porque, no que diz respeito ao Explorer e outros aplicativos, o caminho é apenas D:\jct\ (ou qualquer outro). O driver NTFS manipula o redirecionamento do caminho (o "ponto de nova análise") de forma transparente.

A desvantagem dessa abordagem é obviamente que você precisa criar uma junção próxima ao arquivo que deseja acessar; você ainda não pode simplesmente navegar por toda a estrutura de diretórios.

Em relação a caracteres especiais ( " * : < > ? \ | ), isso é simplesmente um não-uso. Esses caracteres têm significados especiais no Windows, por isso não é possível usá-los nos caminhos. (O Cygwin permite que você crie arquivos com caracteres especiais, mas o faz por substituindo os caracteres com caracteres Unicode especiais, que serão substituídos novamente durante a leitura. A visualização desses arquivos criados pelo Cygwin no Linux ou no Explorer não parecerá correta, já que os caracteres Unicode não serão substituídos novamente.

Tudo isso dito, o que você está fazendo que requer caminhos muito longos? Talvez você possa tornar sua vida mais fácil reavaliando o que está fazendo e evitando longos caminhos. Provavelmente, você não precisa de caminhos longos .

    
por 09.08.2011 / 18:26
5

existem algumas alternativas, mas eu não verifiquei a profundidade dos diretórios.

Eu tentei Explorer ++ , opensource e portatil

ecurretlyusar Cubic Explorer , também opensource:

  • hátambéma versão portátil do explorador cúbico disponível
por 09.08.2011 / 13:07
5

Se você gosta de aplicativos em modo texto, o FAR Manager pode ser de seu interesse, pois descobri que ele pode suportar estruturas de diretórios mais profundas do que o Windows Explorer (embora ainda existam algumas limitações impostas pelo próprio sistema operacional Windows) .

Este é um aplicativo nativo de 32 bits / 64 bits do Windows que, como o Norton Commander (dos dias em que o DOS era o principal governante dos Sistemas Operacionais no PC), é especializado em Diretório (também conhecido como "Pasta") e Gerenciamento de arquivos.

Eu até vi relatos de que ele foi usado como um substituto para o Windows Explorer, mas eu não tentei isso porque estou muito satisfeito com isso no contexto de usá-lo como um aplicativo. A captura de tela que incluí abaixo apresenta o recurso "Directory Tree" no lado direito, que é ativado pressionando F9 (barra de menu), depois "R" (menu do painel direito), seguido por "T" (Tree Modo de painel), que pode ser de particular interesse para você ...

FAR Manager (gratuito e de código aberto)
link

    
por 09.08.2011 / 13:45
1

Eu tentei o gerenciador de arquivos 7-Zip e ele parece funcionar bem com caminhos longos.

    
por 22.07.2016 / 14:22
0

Já experimentou o Total Commander ? É shareware. Parece lidar com nomes de caminhos longos e é um gerenciador de arquivos muito útil em geral.

    
por 27.05.2015 / 11:49