Есть ли какой-либо специальный символ, который не может быть частью пути в Windows или Unix, который я могу использовать в качестве разделителя?
Разделитель путей для Windows и Unix
Ответ 1
В Википедии содержится полезный список зарезервированных символов для разных файловых систем. Ни NTFS, ни POSIX не будут принимать символы NULL или косой черты (/) в именах файлов. Символ косой черты, очевидно, не является хорошим разделителем, поскольку он распространен в путях POSIX, поэтому, возможно, вы могли бы использовать нуль.
Конечно, нуль не подходит для всех ситуаций (например, он обычно не виден при печати), и в этом случае вам, возможно, придется использовать какую-то схему экранирования.
Java, которая предназначена для работы на разных платформах, даже не пытается найти общий разделитель пути. Вместо этого каждая платформа имеет своего собственного персонажа, доступного через API.
Ответ 2
как насчет разделителя для переменной среды PATH? ; для Windows и : для Linux.
Ответ 3
разделитель путей зависит от платформы:
Для окон его '\ и для unix его'/.
Ответ 4
Технически Unix разрешает любой символ в папке/имени файла, кроме /
, конечно, который будет интерпретироваться как часть пути.
Windows поддерживает только печатные символы и некоторые специальные символы, исключая \ / : * ? " < > |
.
Ответ 5
Я был бы осторожен с пользовательскими разделителями, потому что они могут сломаться в будущем, например. если кто-то использует юникод, а ваш пользовательский разделитель является частью другого символа.