Qual è il percorso file più lungo che può gestire Windows?
Qual è il percorso file più lungo che può gestire Windows?
Risposte:
Lunghezza massima del percorso (da MSDN)
Nell'API di Windows (con alcune eccezioni discusse nei paragrafi seguenti), la lunghezza massima per un percorso è MAX_PATH, che è definita come 260 caratteri . Un percorso locale è strutturato nel seguente ordine: lettera di unità, due punti, barra rovesciata, componenti separati da barre rovesciate e un carattere null terminante. Ad esempio, il percorso massimo sull'unità D è "D: \ <una stringa di percorso di 256 caratteri> <NUL>" dove "<NUL>" rappresenta il carattere null di terminazione invisibile per la codepage di sistema corrente. (I caratteri <> sono usati qui per chiarezza visiva e non possono far parte di una stringa di percorso valida.)
Percorso file XP - 250 caratteri
Percorso del file Vista - 260 caratteri
Il percorso più lungo su un'installazione pulita di Windows XP è di 152 caratteri.
Il percorso più lungo in un'installazione semi-pulita di Windows Vista è di 195 caratteri:
Windows XP consente nomi di file con una lunghezza massima di 255 caratteri
Windows Vista consente nomi di file ancora più lunghi contenenti fino a 260 caratteri.
La costante di Windows MAX_PATH
è uguale a 260 come dicono altre risposte, tuttavia, il percorso più lungo reale è 32767.
Vedi qui .
32k è durante l'utilizzo di UNICODE, ma ora dobbiamo usarlo, quindi dovremmo anche usare tale lunghezza massima del percorso.
Inoltre, puoi dare un'occhiata alla mia risposta in SO che spiega alcune cose più dettagliate sulla lunghezza massima del percorso.
Il limite "classico" è di 260 caratteri: drive letter
+ :\
+ 255 characters of filename
+ \
(o per arrotondamento) + null terminator
come indicato nelle altre risposte
Tuttavia, il limite interno reale è 32767 caratteri che possono essere raggiunti aggiungendo \\?\
un percorso completo
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
lpMaximumComponentLength
parametro dellaGetVolumeInformation
funzione (questo valore è comunemente 255 caratteri). Per specificare un percorso di lunghezza estesa, utilizzare il"\\?\"
prefisso. Ad esempio"\\?\D:\very long path"
,.
Se per alcuni motivi non è possibile utilizzare percorsi completi, è possibile accedere a directory più profonde montando su una lettera di unità con subst
/ diskpart
o creando un nodo / collegamento simbolico per abbreviare il percorso
Da Windows 10 il MAX_PATH
limite è stato rimosso anche se non per impostazione predefinita
A partire da Windows 10, versione 1607, le
MAX_PATH
limitazioni sono state rimosse dalle comuni funzioni di file e directory di Win32. Tuttavia, è necessario attivare il nuovo comportamento.https://docs.microsoft.com/en-us/windows/desktop/FileIO/naming-a-file