Nomes de arquivos muito longos e o Windows não pode abrir os arquivos


12

Há vários arquivos em uma unidade de rede, em um caminho bastante profundo e os diretórios na maioria dos quais têm nomes longos. Eu acho que eles foram criados originalmente quando alguém copiou e colou o diretório raiz desse grupo de arquivos da estação de trabalho local na unidade de rede compartilhada. Imagino que na estação de trabalho local, não houve problemas ao abrir o arquivo, mas agora que eles estão em um caminho mais longo na rede, o Windows não pode abri-los quando clico duas vezes. Também tentei copiar os arquivos e renomeá-los para algo mais curto, mas o Windows também não pode fazer isso.

TL; DR

arquivos da estação de trabalho de alguém em um caminho (hipotético) como este:

C:\Documents and Settings\SomeUser\Files\RootOfLongFileNames\LongSubdirectoryName1\...\VeryLongAndDescriptiveAndSpecificFilename.xls
-----------------------------------------^

agora foram copiados e colados na rede assim:

Q:\Dir1\Dir2\ProjectA\FilesForSomething\SomeotherDirectory\Blahblah\RootOfLongFileNames\LongSubdirectoryName1\...\VeryLongAndDescriptiveAndSpecificFilename.xls
---------------------------------------------------------------------^

E o caminho agora é muito longo para o Windows XP lidar.

Alguma dica de como posso ler esses arquivos?



@bZezzz: Parece que isso funcionaria arquivo por arquivo, mas estou procurando por alguns que tornem todo o grupo acessível ao mesmo tempo. Copiar para estações de trabalho locais seria bom, mas os nomes de arquivos longos devem ser preservados (eles fornecem um contexto muito específico para o conteúdo do arquivo). Além disso, muitos usuários aqui não são técnicos o suficiente para começar a abrir arquivos a partir da linha de comando. Sua sugestão pode funcionar para mim e mais uma pessoa.
FrustratedWithFormsDesigner

Respostas:


7

Tente substituir o caminho com SUBST.EXE. Ele vem com o Windows:

C:\Users\shufler>subst /?
Associates a path with a drive letter.

SUBST [drive1: [drive2:]path]
SUBST drive1: /D

  drive1:        Specifies a virtual drive to which you want to assign a path.
  [drive2:]path  Specifies a physical drive and path you want to assign to
                 a virtual drive.
  /D             Deletes a substituted (virtual) drive.

Type SUBST with no parameters to display a list of current virtual drives.

O que você deseja fazer é substituir uma das pastas da cadeia por uma letra de unidade:

 C:\>subst X: Q:\Dir1\Dir2\ProjectA\FilesForSomething\SomeotherDirectory\Blahblah\RootOfLongFileNames\LongSubdirectoryName1

Agora a pasta LongSubdirectory1 é acessada na unidade X :. Quando terminar, você pode excluir sua substituição comsubst X: /D

Se você precisar disso o tempo todo, adicione-o ao seu script de login.

Outra abordagem seria mapear uma unidade mais abaixo na cadeia, de onde Q: está mapeado.


2
Recentemente, enfrentei bastante esse problema e usei a abordagem SUBST. Para esse fim, achei a ferramenta Visual Subst disponível em ntwind.com/software/utilities/visual-subst.html como inestimável.
yosh m

6

Você precisará renomear os nomes de diretório no caminho até que o nome seja curto o suficiente para o sistema operacional acessar.

Eu navegaria para a primeira pasta cujo nome você pode modificar e renomeá-lo para uma única letra e, em seguida, faria o mesmo para cada pasta subseqüente até chegar ao arquivo necessário.

Com relação à necessidade de manter a estrutura: existem limitações nas quais temos que trabalhar nos sistemas operacionais e não é bom operar rotineiramente fora desses parâmetros. Qualquer solução rápida agora será apenas um patch que precisará ser reexecutado novamente no futuro. Uma solução verdadeira envolverá a reorganização da estrutura de diretórios, de forma que esse problema extremamente longo do caminho da pasta / nome do arquivo não seja mais necessário.


256 caracteres.
precisa saber é o seguinte

Não, eles precisam usar um programa que NÃO seja o Windows Explorer, porque o Windows Explorer desconhece as especificações do sistema de arquivos e, preguiçosamente, opta por seguir o denominador menos comum, tornando impossível, por exemplo, simplesmente copiar a raiz existente de uma unidade à raiz de outra unidade idêntica (em capacidade, formato etc.) sem encontrar erros PATH TOO LONG.
Triynko 14/09/12


0

EDIT: Originalmente, eu sugeri o uso de robocopy, mas é claro que esse é o XP e não o pré-instalado.

Não há como você 'dar a todos o que eles querem'. Se o caminho do arquivo for muito longo, você não poderá executar nenhuma operação com ele. Na minha opinião, você tem algumas opções:

  1. Siga as etapas das outras postagens e renomeie os diretórios até que sejam curtos. O bom dos computadores é que você pode escrever um script para não apenas fazer isso por você, mas também acompanhar o nome dos nomes originais. Mesmo com um script, isso deve consumir um pouco de tempo.

  2. Obtenha um LiveCD do Linux. Coloque-o no computador e inicialize a partir desse CD. Vá ver o disco do Windows que será montado automaticamente como um sistema de arquivos separado. Obtenha todos os arquivos que você deseja e coloque-os em uma nova pasta na sua área de trabalho. Compacte essa pasta e coloque-a em um disco rígido externo ou pen USB ou se a sua unidade de rede permitir copiar de volta para o sistema de arquivos, mova-a para um diretório de nível superior.


Não tenho o robocopy instalado e não tenho certeza se tenho acesso para instalá-lo (é um computador de trabalho). Além disso, isso parece muito trabalho para cada arquivo. Meu exemplo foi simplificado: na verdade, existem vários diretórios em vários níveis muito profundos, cada um contendo arquivos que agora estão inacessíveis devido a problemas muito longos. Eu realmente não tenho tempo para fazer isso para todos os arquivos que todos querem.
FrustratedWithFormsDesigner
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.