Разделитель путей для Windows и Unix

Есть ли какой-либо специальный символ, который не может быть частью пути в Windows или Unix, который я могу использовать в качестве разделителя?

Ответ 1

В Википедии содержится полезный список зарезервированных символов для разных файловых систем. Ни NTFS, ни POSIX не будут принимать символы NULL или косой черты (/) в именах файлов. Символ косой черты, очевидно, не является хорошим разделителем, поскольку он распространен в путях POSIX, поэтому, возможно, вы могли бы использовать нуль.

Конечно, нуль не подходит для всех ситуаций (например, он обычно не виден при печати), и в этом случае вам, возможно, придется использовать какую-то схему экранирования.

Java, которая предназначена для работы на разных платформах, даже не пытается найти общий разделитель пути. Вместо этого каждая платформа имеет своего собственного персонажа, доступного через API.

Ответ 2

как насчет разделителя для переменной среды PATH? ; для Windows и : для Linux.

Ответ 3

разделитель путей зависит от платформы:

Для окон его '\ и для unix его'/.

Ответ 4

Технически Unix разрешает любой символ в папке/имени файла, кроме /, конечно, который будет интерпретироваться как часть пути. Windows поддерживает только печатные символы и некоторые специальные символы, исключая \ / : * ? " < > |.

Ответ 5

Я был бы осторожен с пользовательскими разделителями, потому что они могут сломаться в будущем, например. если кто-то использует юникод, а ваш пользовательский разделитель является частью другого символа.