2010-02-09 8 views

Respuesta

5

Wikipedia lista útil the reserved characters for different filesystems. Ni NTFS ni POSIX aceptarán los caracteres nulos o de barra (/) en los nombres de archivo. El carácter barra oblicua obviamente no es un buen separador, así que tal vez podrías usar nulo.

Por supuesto nulo no es adecuado para todas las situaciones (por ejemplo, no suele ser visible cuando se imprime), en cuyo caso es posible que deba utilizar algún tipo de escaping scheme.

Java, que tiene como objetivo trabajar en diferentes plataformas, ni siquiera intenta encontrar un separador de ruta común. En cambio, cada plataforma tiene su propio carácter, accesible a través de API.

2

Técnicamente, Unix permite cualquier carácter en una carpeta/nombre de archivo, excepto / por supuesto, que se interpretaría como parte de la ruta. Windows solo admite caracteres imprimibles y algunos caracteres especiales, excluyendo \/: * ? " < > |.

+0

Entonces, para Unix, ¿hay alguna forma de unir varias rutas en una cadena? – user269354

+1

@ user269354 - Tal vez puedas usar un separador hecho en casa como:/home/user/tiutalk/_____ SEPARATOOOOORRR _____/var/www/_____ SEPARATOOOOORRR _____/bin/dump/ –

+0

o una cadena como "# p # p ... # p # p ", donde # es el número de caracteres en la ruta yp es la ruta – user269354

-1

Tendría cuidado con los separadores personalizados porque podrían romperse en el futuro, p. si alguien usa unicode y tu separador personalizado es parte de otro personaje.

27

¿qué ocurre con el delimitador de la variable de entorno PATH? ; para windows, y : para Linux.

4

separador de ruta son dependientes de la plataforma:

Para las ventanas, que es ‘\’ y para UNIX que es ‘/’.

+1

Estás hablando de separadores de directorios, no separadores de rutas. Los separadores de ruta son los caracteres (punto y coma en Windows, dos puntos en Unix) que separan los elementos individuales de un valor que representa varias rutas. – Alan

Cuestiones relacionadas