2010-02-09 19 views

risposta

5

Wikipedia elenca utilmente the reserved characters for different filesystems. Né NTFS né POSIX accetteranno i caratteri null o slash (/) nei nomi dei file. Il carattere barra non è ovviamente un buon separatore, quindi potresti usare null.

Ovviamente null non è adatto a tutte le situazioni (ad esempio, di solito non è visibile quando stampato), nel qual caso potrebbe essere necessario utilizzare una sorta di escaping scheme.

Java, che mira a funzionare su piattaforme diverse, non tenta nemmeno di trovare un separatore di percorso comune. Invece ogni piattaforma ha il proprio carattere, accessibile attraverso un API.

2

Tecnicamente, Unix consente qualsiasi carattere in una cartella/nome file, ad eccezione di /, che verrebbe interpretato come parte del percorso. Windows supporta solo caratteri stampabili e alcuni caratteri speciali escluso \/: * ? " < > |.

+0

Quindi, per Unix, non esiste un modo per unire più percorsi in una stringa? – user269354

+1

@ user269354 - Forse puoi usare un separatore fatto in casa come:/home/utente/tiutalk/_____ SEPARATOOOOORRR _____/var/www/_____ SEPARATOOOOORRR _____/bin/dump/ –

+0

o stringhe come "# p # p ... # p # p ", dove # è il numero di caratteri nel percorso e p è il percorso – user269354

-1

Farei attenzione con i separatori personalizzati perché potrebbero rompersi in futuro, ad es. se qualcuno usa unicode e il tuo separatore personalizzato fa parte di un altro personaggio.

27

E il delimitatore per la variabile di ambiente PATH? ; per Windows e : per Linux.

4

separatore di percorso sono dipendenti dalla piattaforma:

Per le finestre, si tratta di ‘\’ e per UNIX è ‘/’.

+1

parlando di separatori di directory, non di separatori di percorso. I separatori di percorso sono i caratteri (punto e virgola su Windows, due punti su Unix) che separano i singoli elementi di un valore che rappresenta più percorsi. – Alan

Problemi correlati