C'è qualche lunghezza dei termini di percorso di file in NTFS?
Domanda
Perché non posso creare un percorso di profonda i cui personaggi nel percorso è più di 255 nel file system NTFS? Mi sembra un limite di FAT32, ma in NTFS esistono anche? Qualcuno può fornire alcuni documenti?
Molte grazie!
Soluzione
La limitazione di 260 caratteri non è una limitazione del file system, ma di API Win32. Win32 definisce MAX_PATH come 260 che è ciò che l'API sta usando per controllare la lunghezza del percorso passato in funzioni come FileCreate, FileOpen, ecc (che sono usati da NET nel BCL).
Tuttavia, è possibile ignorare le regole Win32 e creare percorsi fino a 32K caratteri Fondamentalmente è necessario utilizzare il "\\ \ C:? \ MyReallyLongPath \ File.txt". Sintassi che si può non hanno visto prima. Ultimo ho controllato, il file e classi FileInfo in .NET è stato impedito di utilizzare questo tipo di percorso, ma sicuramente si può fare da C / C ++. Ecco un link per maggiori informazioni.
http://msdn.microsoft.com/en -us / library / aa365247 (VS.85) aspx
Altri suggerimenti
Citato da wikipedia
I nomi dei file sono limitati a 255 UTF-16 parole di codice. Alcuni nomi sono riservati nella radice del volume directory e non può essere utilizzato per File. Questi sono: $ MFT, $ MFTMirr, $ LogFile, $ Volume, $ AttrDef,. (punto), $ Bitmap, $ Boot, $ BadClus, $ sicura, $ Upcase, e $ Extend; [3]. (Punto) e $ Estendere sono entrambe le directory; il gli altri sono file. I limiti del kernel NT percorsi completi per 32.767 UTF-16 codice parole.
doc . Si dovrebbe certamente essere in grado di creare filepaths più lunghe di 255 byte, a patto che ogni componente del percorso individuo è sotto quella. Tuttavia è necessario utilizzare le versioni Unicode (W) delle chiamate di accesso ai file per ottenere questo comportamento; se si sta utilizzando l'ANSI (A) interfacce byte-based come quelli utilizzati da stdio, ti verrà bloccato con le limitazioni del vecchio pre-Unicode interfaccia percorso.