C'è qualche carattere speciale che non può essere una parte del percorso in Windows o Unix che posso usare come separatore?Separatore di percorso per Windows e Unix
risposta
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.
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 \/: * ? " < > |
.
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.
E il delimitatore per la variabile di ambiente PATH? ; per Windows e : per Linux.
separatore di percorso sono dipendenti dalla piattaforma:
Per le finestre, si tratta di ‘\’ e per UNIX è ‘/’.
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
Quindi, per Unix, non esiste un modo per unire più percorsi in una stringa? – user269354
@ user269354 - Forse puoi usare un separatore fatto in casa come:/home/utente/tiutalk/_____ SEPARATOOOOORRR _____/var/www/_____ SEPARATOOOOORRR _____/bin/dump/ –
o stringhe come "# p # p ... # p # p ", dove # è il numero di caratteri nel percorso e p è il percorso – user269354