Alternativa a Windows Explorer per nomi di percorsi lunghi


24

Aggiornare:

  1. Ho scoperto che non solo Windows Explorer ma anche altri software soffrono di nomi di percorsi troppo lunghi. Ad esempio, in Firefox, quando salvo una pagina Web in una directory, non riesco ancora a farlo se il nome o il percorso sono troppo lunghi. Firefox si affida anche a Windows Explorer? Come posso risolvere anche questo problema?

  2. Ho provato il software consigliato nelle due risposte. Nessuno di loro può accedere a un lungo percorso. Il problema del percorso lungo è inerente al sistema operativo Windows, indipendentemente dal programma per sfogliare le directory? Se sì, significa che non c'è modo di aggirarlo?

Originale: ho due SO installati sul mio laptop: Windows 7 e Ubuntu 10.10. Condividono una partizione.

In Ubuntu, usando Nautilus, posso creare directory che si trovano molto in profondità nella gerarchia dei percorsi sulla partizione condivisa. Ma quando si passa a Windows, Windows Explorer non consente di accedere a directory troppo profonde, ovvero con un nome percorso troppo lungo.

Inoltre, Windows Explorer sembra non essere in grado di accedere a file e directory creati in Ubuntu con caratteri speciali nella directory e nei nomi dei file.

Mi chiedevo cosa può risolvere il problema in Windows? Ad esempio, ci sono altri software alternativi per sostituire Windows Explorer?


1
Quale file system hai usato per la partizione condivisa (FAT32, NTFS)?
James P,

1
@James: ntfs ...
Tim

Vorrei chiedere perché hai bisogno di questa lunghezza di percorso o profondità? risolvere qualsiasi cosa ti abbia portato a superare il limite 259 è probabilmente più facile che far aggirare Windows.
cjb110,

Risposte:


30

Mentre NTFS consente percorsi lunghi circa 32.000 caratteri, hai trovato la limitazione della lunghezza del percorso di 259 caratteri dell'API Win32 .

Nell'API di Windows (con alcune eccezioni discusse nel [documento collegato]), la lunghezza massima per un percorso è MAX_PATH, che è definita come 260 caratteri.

(C'è inoltre un NULLcarattere di terminazione aggiunto al percorso, che ci fornisce 259 caratteri utilizzabili.)

Poiché Explorer (e quasi tutte le altre app di Windows) si basano sull'API Win32 per l'accesso al filesystem, non è pratico aggirare questa limitazione anche se è possibile :

L'API di Windows ha molte funzioni che hanno anche versioni Unicode per consentire un percorso di lunghezza estesa per una lunghezza totale del percorso massima di 32.767 caratteri. Questo tipo di percorso è composto da componenti separati da barre rovesciate, ciascuna fino al valore restituito nel lpMaximumComponentLengthparametro della GetVolumeInformationfunzione (questo valore è comunemente 255 caratteri). Per specificare un percorso di lunghezza estesa, utilizzare il prefisso "\\? \". Ad esempio, "\\? \ D: \ percorso molto lungo ".

Sfortunatamente, non puoi semplicemente digitare \\?\D:\very long pathin una finestra di Explorer. L'applicazione deve essere progettata per sfruttare queste API e gestire nomi di percorso molto lunghi.

Un modo per accedere a percorsi di lunghezza estesa in Windows è installare Cygwin , un livello di emulazione * nix per Windows. Nei miei test, Cygwin non sembra essere limitato da MAX_PATH; bash e vi non hanno avuto problemi con percorsi lunghi 2000 caratteri.

Tieni presente che anche se puoi usare bash per sfogliare percorsi di lunghezza estesa, probabilmente non sarai in grado di aprire i file in quei percorsi nelle normali applicazioni Windows. Ad esempio, digitando notepadmentre la directory di lavoro è un percorso di lunghezza estesa ti ottiene

Errore: la directory di lavoro corrente ha un percorso più lungo di quanto consentito per una directory di lavoro Win32. Impossibile avviare l'applicazione Windows nativa da qui.

E provare notepad "\\?\D:\very long path\file.txt"non funziona neanche; si avvia, ma dice semplicemente "Impossibile trovare il file ..." Provare lo stesso con Notepad ++ lo blocca. (Probabilmente un buffer overflow.)

L'altra opzione per accedere a file specifici sepolti in profondità in un percorso di lunghezza estesa è quella di abbreviare il percorso stesso creando un punto di giunzione NTFS . Da un prompt dei comandi elevato:

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

Ora puoi accedere al contenuto di D:\very\long\path\da D:\jct\. Non colpirai alcun problema di lunghezza del percorso perché, per quanto riguarda Explorer e altre app, il percorso è giusto D:\jct\(o qualunque cosa). Il driver NTFS gestisce il reindirizzamento del percorso (il "punto di analisi") in modo trasparente.

Il rovescio della medaglia di questo approccio è ovviamente che devi creare una giunzione vicino al file a cui vuoi accedere; non è ancora possibile sfogliare l'intera struttura della directory.

Per quanto riguarda i caratteri speciali ( " * : < > ? \ |), è semplicemente un gioco da ragazzi. Quei personaggi hanno significati speciali all'interno di Windows, quindi non è possibile usarli all'interno di percorsi. (Cygwin ti consente di creare file con caratteri speciali, ma lo fa sostituendo i caratteri con caratteri Unicode speciali, che poi sostituisce durante la lettura. Visualizzare questi file creati da Cygwin sotto Linux o in Explorer non sembrerebbe giusto, dal momento che i caratteri Unicode non verrebbero sostituiti indietro.)


Detto questo, cosa stai facendo che richiede percorsi molto lunghi? Forse potresti semplificarti la vita rivalutando ciò che stai facendo ed evitando percorsi lunghi. Le probabilità sono che non hai bisogno di percorsi così lunghi comunque .


Sembra che questa risposta dice "Non esiste alcun software che fa quello che stai cercando" ma non esplicitamente
Aaron

5

Se ti piacciono le applicazioni in modalità testo, FAR Manager potrebbe essere di tuo interesse poiché ho scoperto che può supportare strutture di directory più profonde di quelle di Windows Explorer (anche se ci sono ancora alcune limitazioni imposte dal sistema operativo Windows stesso).

Questa è un'applicazione Windows nativa a 32-bit / 64-bit che, come Norton Commander (dai tempi in cui DOS era il sovrano supremo dei sistemi operativi sul PC), è specializzata in Directory (aka, "Cartella") e Gestione file.

Ho anche visto rapporti che vengono utilizzati in sostituzione di Windows Explorer, ma non l'ho provato perché sono abbastanza soddisfatto nel contesto dell'utilizzo come applicazione. Lo screenshot che ho incluso di seguito presenta la funzione "Albero delle directory" sul lato destro, che viene attivato premendo F9 (barra dei menu), quindi "R" (menu del pannello destro), seguito da "T" (modalità del pannello degli alberi) , che potrebbe interessarti in modo particolare ...

  FAR Manager (gratuito e open source)
  http://www.farmanager.com/

inserisci qui la descrizione dell'immagine


Grazie! (1) Ho provato FAR prima. Ci sono due domande Sento il blu scuro affaticare i miei occhi, quindi può essere cambiato? Inoltre mi chiedo come scegliere un'applicazione per aprire un file che non può essere riconosciuto o aperto in diverse applicazioni. (2) Ho scoperto che non solo Windows Explorer ma anche altri software soffrono di nomi di percorsi troppo lunghi. Ad esempio, in Firefox, vorrei salvare una pagina Web in una directory, non riesco ancora ad aprire la directory se il nome o il percorso è troppo lungo. Firefox si affida anche a Windows Explorer? Come posso risolvere anche questo problema?
Tim

Sì, il colore può essere modificato: F9 (barra dei menu), "O" (menu Opzioni), "L" (colori).
Randolf Richardson,

Non capisco completamente la seconda domanda su "... come scegliere un'applicazione per aprire un file ..." ma se si preme Maiusc-Invio su un file si affiderà alle Associazioni di file di Windows per aprirlo (invece di cercare una funzione integrata o un plug-in FAR Manager per gestirla).
Randolf Richardson,

Per la tua ultima domanda, ho notato che FAR Manager sembra essere in grado di gestire percorsi leggermente più lunghi a volte. Non sono sicuro del perché, ma sospetto che il problema riscontrato potrebbe essere una limitazione del sistema operativo Windows stesso.
Randolf Richardson,

1
Utilizzare Maiusc-Invio, che farà tentare ad Windows di aprirlo; poiché non verrà riconosciuto, ti verrà presentato il solito prompt per selezionare un'applicazione.
Randolf Richardson,

4

ci sono alcune alternative, ma non ho verificato la profondità delle directory.

Ho provato Explorer ++ , opensource e portatile

Schermata di Explorer ++

e curretly usano Cubic Explorer , anche opensource:

Schermata di Cubicexplorer


Grazie! Ho scoperto che non solo Windows Explorer ma anche altri software soffrono di nomi di percorsi troppo lunghi. Ad esempio, in Firefox, vorrei salvare una pagina Web in una directory, non riesco ancora ad aprire la directory se il nome o il percorso è troppo lungo. . Firefox si affida anche a Windows Explorer? Come posso risolvere anche questo problema?
Tim

1
@Tim: è possibile che si stia verificando una limitazione imposta dal design di Windows stesso. Ho anche notato che il prompt di DOS ha anche problemi con percorsi molto lunghi, anche se posso approfondire un po 'usando quei brutti percorsi "8.3 style" (ad es. "C: / PROGRA ~ 2 / SPYBOT ~ 1 /") . Una caratteristica interessante, tuttavia, è che la miscelazione di questi percorsi 8.3 più brevi con quelli più lunghi sembra funzionare bene nella maggior parte delle applicazioni.
Randolf Richardson,

@Randolf: grazie! Ho provato il software raccomandato nei tuoi post e su Juhele. Eseguito FAR, nessuno di essi può accedere a un percorso lungo, mentre FAR può aprire una tale directory, non può aprire un file al suo interno. Il problema del percorso lungo è inerente al sistema operativo Windows, indipendentemente dal programma per sfogliare le directory? Se sì, significa che non c'è modo di aggirarlo?
Tim

@Tim: credo che tu abbia confermato il problema con una limitazione all'interno di Windows stesso. È possibile utilizzare FAR Manage per visualizzare il file (tasto F3 dopo aver evidenziato il file)? Che dire dell'utilizzo di Enter (senza MAIUSC)? (Se riesci a visualizzarlo, puoi anche copiarlo in un'altra posizione in cui Windows può utilizzarlo - anche se questo è noioso, almeno rende possibile l'accesso al file.)
Randolf Richardson

4
Ho appena provato Explorer ++ e Cubic Explorer. Ma entrambi sembrano non supportare nomi di percorsi lunghi.
xaedes,

2

Ho provato il file manager 7-Zip e sembra funzionare bene con percorsi lunghi.


Brillante! Gioiello nascosto che avevo sul mio computer e non pensavo di provare. Bonus: ho avuto un lungo percorso su una condivisione di rete - e ho notato che le prestazioni su 7 Zip File Manager sono pazzesche rispetto alle prestazioni lente su Windows Explorer
Omaer,

0

Hai provato Total Commander ? È shareware. Sembra avere a che fare con nomi di percorsi lunghi ed è un file manager molto utile in generale.

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.