Originariamente inviato da MItaly
Premessa: qui i 32 bit/64 bit non c'entrano niente, ma ci sono diverse limitazioni a causa dei vari componenti che entrano in gioco nel gestire i file.
In primo luogo c'è il file system: NTFS limita la lunghezza di ciascuna componente di un percorso a 255 caratteri UTF-16; vale una limitazione analoga per FAT, ma lì ci sono complicazioni aggiuntive dovute al modo in cui è gestita la struttura di ciascuna directory.
Quindi, ci sono le limitazioni del kernel NT, che impone che un percorso UNC completo non possa essere più lungo di 32767 caratteri; all'atto pratico poi, per come sono gestiti i percorsi UNC internamente, questo limite si abbassa leggermente, per cui di solito si considera come limite di precauzione ~32000 caratteri.
Infine, ci sono le limitazioni delle API Win32, ossia quelle funzioni che la maggior parte delle applicazioni impiegano per interagire con Windows e, quindi, anche con i file. Se si impiegano percorsi "normali" (x:\percorso\nomefile.ext), ossia non-UNC, la limitazione qui è data dalla macro MAX_PATH, che da sempre si espande a 260 caratteri (ossia 256 caratteri di percorso "effettivo", un carattere per specificare il drive, due caratteri per il ':\' e il NUL finale che chiude la stringa); se invece l'applicazione impiega la versione Unicode delle API per la gestione dei file e usa i percorsi UNC, l'unica limitazione rimane quella detta prima del kernel, ossia di circa 32000 caratteri.
Il limite di MAX_PATH si può facilmente aggirare mappando percorsi particolarmente profondi come unità virtuali (ad esempio tramite il comando subst), mentre il limite interno di 32767 caratteri non si può aggirare in alcuna maniera.
Maggiori informazioni qui.

Praticamente io su win xp pro se scrivo il nome di una cartella con 255 caratteri va bene, mentre con 256 no giusto?