Разделитель пути для Windows и Unix - PullRequest
15 голосов
/ 09 февраля 2010

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

Ответы [ 5 ]

44 голосов
/ 09 февраля 2010

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

6 голосов
/ 09 февраля 2010

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

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

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

3 голосов
/ 16 июля 2014

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

Для окон это ‘\’, а для unix - ‘/’.

2 голосов
/ 09 февраля 2010

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

0 голосов
/ 09 февраля 2010

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

...