Windows 7 ha risolto il limite di 255 caratteri per il percorso dei file?


92

A quanto ho capito, la limitazione di 255 caratteri in un percorso di file è una limitazione di Windows. Qual è il motivo per questo? In tal caso, il problema è stato risolto in Windows 7?

Nelle nostre pratiche di integrazione continua, spesso abbiamo strutture di progetto profondamente annidate e sarebbe estremamente utile poter andare oltre i 255 caratteri. In questo momento siamo un po 'costretti a strutturare i nostri progetti in modo tale da non colpire questo tetto artificiale.


3
@DavidHeffernan Ma quel 260 include il carattere null alla fine e "C: \" all'inizio, quindi sono utilizzabili solo 255 caratteri.
Aaron Dufour

2
@DavidHeffernan Mi sono sbagliato. Microsoft spesso cita la lunghezza come 256, che è ciò che ottieni quando sottrai correttamente, anziché 260, che è tecnicamente il limite.
Aaron Dufour

5
Questo problema mi fa infuriare. È ancora presente in Windows 8.1. Non riesco a spostare i miei file, anche se IN QUALCHE MODO il file è stato creato in primo luogo. Se trovi un modo per creare file con più di 255 nomi di percorsi di file, puoi rovinare completamente la macchina Windows di qualcuno.
Automatico

Secondo Jeremy Kuhne il problema si sta risolvendo e potrebbe presto avere una soluzione. Guarda questo video. youtube.com/watch?v=ZppqEMegCAA
J Edward Ellis

La domanda riguarda Windows 7, ma comunque, Windows 10 ha un'opzione per attivare i percorsi lunghi per alcune applicazioni. Per ulteriori dettagli controllare questa risposta: stackoverflow.com/questions/27680647/...
quasoft

Risposte:


44

Vedi http://msdn.microsoft.com/en-us/library/aa365247(VS.85).aspx

Ciò spiega che le versioni Unicode delle API di Windows hanno limiti più elevati e come abilitarlo.


14
Ma un avvertimento: c'è un sacco di codice (per lo più utilità di sistema di terze parti e simili) che non funziona bene con percorsi più lunghi. Potresti avere problemi con questo se inizi a utilizzare percorsi più lunghi.
ReinstateMonica Larry Osterman

2
L'articolo è corretto? Ho eseguito un semplice test con Esplora risorse di Windows e il prompt dei comandi di Windows in Windows 7 e non sono in grado di creare percorsi di file con oltre 260 caratteri. Microsoft non ha aggiornato queste applicazioni per utilizzare le versioni Unicode delle API di Windows?
Templari

7
Purtroppo Windows Explorer su Windows 7 x64 è ancora soggetto a questo limite di percorso. Questo dà l'impressione che l'intero sistema operativo non abbia superato questo limite, quando in realtà è solo Windows Explorer che non è stato aggiornato per funzionare con percorsi più lunghi. È possibile che un file manager di terze parti che utilizza le API più recenti possa aggirare questo problema. In definitiva, se un programma sembra raggiungere il limite del percorso dipenderà dal fatto che quel programma utilizzi le API più recenti su Windows.
user1445967

2
Non si tratta di API "più recenti" o "più vecchie". Ottieni supporto per percorsi lunghi solo se lo chiedi esplicitamente, e Explorer non lo fa, presumibilmente per l'ovvia ragione: compatibilità con le applicazioni di terze parti esistenti.
Harry Johnston,

9
-1 - Un collegamento a una potenziale soluzione è sempre il benvenuto, ma aggiungi un contesto attorno al collegamento in modo che gli altri utenti abbiano un'idea di cosa sia e perché si trovi. Cita sempre la parte più rilevante di un collegamento importante, nel caso in cui il sito di destinazione non sia raggiungibile o rimanga permanentemente offline. meta.stackoverflow.com/tags/link-only-answers/info
Aaron Hall

20

Puoi aggirare quel limite usando subst se necessario.



1
O robocopy integrato in Windows, in base a questa risposta, stackoverflow.com/questions/29865863/…
KAE

5
È necessario dimostrare come e fornire un collegamento alla documentazione pertinente. -1
Aaron Hall

3
Anche se ho votato verso l'alto, sono d'accordo che un esempio sarebbe utile: subst E: D:\TESTDATA\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1\4B871B~1 questo mi ha portato su un percorso profondo 500 caratteri. Il motivo per i ~ 1 è il modo in cui Explorer ha formattato il percorso.
Adam Marcionek

1
Una soluzione simile sarebbe usare le giunzioni , tramite un'estensione della shell o tramite mklink Esempio:mklink /J C:\newdir C:\some\really\long\path\
Charles Grunwald

14

I workaround non sono soluzioni, quindi la risposta è "No".

Ancora alla ricerca di soluzioni alternative, ecco le possibili soluzioni: http://support.code42.com/CrashPlan/Latest/Troubleshooting/Windows_File_Paths_Longer_Than_255_Characters


1
Gli elementi principali di Windows, tra cui PowerShell, Windows Explorer Shell e utilità cmd come del, non sono ancora in grado di gestire percorsi che superano i 250 caratteri e nessuna soluzione alternativa risolve il fatto che le principali tecnologie Microsoft non gestiscono percorsi lunghi, a partire dal 2016. La risposta breve qui è fino a quando Microsoft non mette in moto le sue spalle collettive, c'è poco che possiamo fare.
Warren P


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.