I nomi dei file sono troppo lunghi e Windows non può aprire i file


12

C'è un sacco di file su un'unità di rete, su un percorso abbastanza profondo e le directory sulla maggior parte di hanno nomi lunghi. Penso che questi siano stati originariamente creati quando qualcuno ha copiato e incollato la directory principale per questo gruppo di file dalla propria workstation locale all'unità di rete condivisa. Immagino che sulla workstation locale non ci siano stati problemi ad aprire il file, ma ora che si trovano su un percorso più lungo sulla rete, Windows non può aprirli quando faccio doppio clic. Ho anche provato a copiare i file e rinominarli in qualche modo più brevi, ma Windows non è in grado di farlo.

TL; DR

file dalla workstation di qualcuno su un (ipotetico) percorso come questo:

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

ora sono stati copiati e incollati sulla rete in questo modo:

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

E il percorso ora è troppo lungo per essere gestito da Windows XP.

Qualche consiglio su come posso leggere questi file?



@bZezzz: Sembra che funzionerebbe file per file, ma sto cercando alcuni cosa per renderli tutti accessibili tutti in una volta. Copiare su stazioni di lavoro locali sarebbe OK ma i nomi di file lunghi devono essere preservati (forniscono un contesto molto specifico per il contenuto del file). Inoltre, molti utenti qui non sono abbastanza tecnici per iniziare ad aprire i file dalla riga di comando. Il tuo suggerimento potrebbe funzionare per me e un'altra persona.
FrustratedWithFormsDesigner

Risposte:


7

Prova a sostituire il percorso con SUBST.EXE. Viene fornito con 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.

Quello che vuoi fare è sostituire una delle cartelle lungo la catena con una lettera di unità:

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

Ora si accede alla cartella LongSubdirectoryName1 sull'unità X:. Al termine puoi eliminare la sostituzione consubst X: /D

Se ti serve tutto il tempo, aggiungilo allo script di accesso.

Un altro approccio sarebbe quello di mappare un'unità lungo la catena da qualsiasi punto Q: è mappato.


2
Di recente ho affrontato molto questo problema e ho usato l'approccio SUBST. A tale scopo, ho trovato lo strumento Visual Subst disponibile su nfiere.com/software/utilities/visual-subst.html per essere prezioso.
yosh m

6

Dovrai rinominare i nomi delle directory nel percorso fino a quando il nome non è abbastanza corto per consentire al sistema operativo di accedere.

Passerei alla prima cartella di cui è possibile modificare il nome e lo rinominerei in una singola lettera, quindi farei lo stesso per ogni cartella successiva fino ad arrivare al file necessario.

Per quanto riguarda la necessità di mantenere la struttura: ci sono delle limitazioni sulle quali dobbiamo lavorare sui sistemi operativi e non è bene operare di routine al di fuori di questi parametri. Qualsiasi soluzione rapida ora sarà sempre e solo una patch che dovrà essere rieseguita in futuro. Una vera soluzione prevede la riorganizzazione della struttura delle directory in modo tale che questo problema di percorso / nome file della cartella estremamente lungo non sia più necessario.


256 caratteri.
bZezzz,

No, devono usare un programma che NON sia Windows Explorer, perché Windows Explorer ignora le specifiche del filesystem e opta pigramente per attenersi al minimo comune denominatore, rendendo impossibile, ad esempio, semplicemente copiare la radice esistente di un'unità alla radice di un'altra unità identica (in termini di capacità, formato, ecc.) senza incorrere in errori PATH TOO LONG.
Triynko,


0

EDIT: Inizialmente avevo suggerito di usare robocopy, ma ovviamente si tratta di XP e che non lo ha preinstallato.

Non sarà in alcun modo possibile "dare a tutti ciò che vogliono" Se il percorso del file è troppo lungo, non sarà possibile eseguire operazioni sui file con esso. Per come la vedo io, hai alcune opzioni:

  1. Seguire i passaggi degli altri post e rinominare le directory fino a quando non sono brevi. La cosa bella dei computer è che puoi scrivere uno script non solo per farlo, ma anche per tenere traccia di quali fossero i nomi originali. Anche con una sceneggiatura, ciò richiederà un po 'di tempo.

  2. Ottieni un LiveCD Linux. Inseriscilo nel computer e avvia da quel CD. Vai a vedere il disco di Windows che verrà montato automaticamente come file system separato. Ottieni tutti i file desiderati e inseriscili in una nuova cartella sul desktop. Comprimere quella cartella e inserirla su un disco rigido esterno o su una chiavetta USB o se l'unità di rete consente di copiarla nel file system, spostarla in una directory di livello superiore.


Non ho Robocopy installato e non sono sicuro di avere accesso per installarlo (è un computer di lavoro). Inoltre, sembra un sacco di lavoro per ogni file. Il mio esempio è stato semplificato: in realtà ci sono diverse directory a più livelli troppo profondi, ognuna contenente file che ora sono inaccessibili a causa di problemi troppo lunghi. Non ho davvero il tempo di farlo per tutti i file che tutti vogliono.
FrustratedWithFormsDesigner
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.