2011-01-27 24 views
75

¿Dónde puedo encontrar una lista de caracteres permitidos en nombres de archivos, dependiendo del sistema operativo? (por ejemplo, en Linux, el carácter ':' está permitido en los nombres de archivo, pero no en Windows)Caracteres permitidos en el nombre de archivo

+0

.NET proporciona esa información para Windows. – leppie

+0

http://stackoverflow.com/questions/2679699/what-characters-allowed-in-file-names-on-android/13502029 – kreker

+4

@kreker tenga en cuenta que su pregunta es sobre Android – congusbongus

Respuesta

63

Puede comenzar con la página Wikipedia Filename. Tiene una tabla bastante decente (Comparison of filename limitations) que enumera los caracteres reservados para bastantes sistemas de archivos.

Además de los nombres de archivos reservados como CON en MS-DOS. Recuerdo haber sido mordido por eso una vez cuando acorté en archivo de inclusión de const.h a con.h y pasé media hora averiguando por qué colgaba el compilador. Resulta que las extensiones ignoradas por DOS para los dispositivos de modo que con.h era exactamente lo mismo que con, la consola de entrada (es decir, por supuesto, el compilador me estaba esperando escriba en el archivo de encabezado antes de continuar).

+3

Encuentro la página de Wikipedia algo vaga y confusa, por ejemplo "Algunos sistemas operativos prohíben algunos caracteres particulares ...". De hecho, estoy buscando una tabla completa que enumere todos los caracteres permitidos y no permitidos. –

+4

@python, no mire esa tabla, mire la gran honkin 'debajo (titulada "Comparación de las limitaciones de nombre de archivo"). Eso no es tan vago en su contenido. – paxdiablo

+0

Ah, está bien, no vi eso :) –

6

OK, así que mirando Comparison of file systems si sólo se preocupan por los principales actores de sistemas de archivos:

  • Windowz (FAT32, NTFS): Cualquier Unicode excepto NUL, \, /, :, *, ", < , >, |
  • Mac (HFS, HFS +): Cualquier Unicode válidos salvo : o /
  • Linux (ext [2-4]): Cualquier byte excepto NUL

por lo que cualquier byte excepto NUL, \, /, :, *, ", <, >, | y no se puede tener archivos/las carpetas llaman . o .. y no hay caracteres de control (por supuesto).

+4

Ventana * z * lol :) – userlond

+5

Esto no es correcto. Linux no permite '/'. Windows no permite la barra invertida y algunas cadenas (por ejemplo 'CON'). – kgadek

+0

sí, por lo tanto dije * excepto *. – CpILL

16

En el sistema operativo Windows, cree un archivo y asígnele un carácter no válido como \ en el nombre del archivo. Como resultado, aparecerá una ventana emergente con todos los caracteres no válidos en un nombre de archivo.

enter image description here

0

Para ser más precisos acerca del Mac OS X (ahora llamada MacOS) / en el Finder se interpreta a : en el sistema de archivos de Unix.

Esto se hizo por compatibilidad con versiones anteriores cuando Apple se mudó de Classic Mac OS.

Es legítimo utilizar un / en un nombre de archivo en el Finder, mirando el mismo archivo en el terminal aparecerá con un :.

Y funciona a la inversa también: no se puede utilizar un / en un nombre de archivo con el terminal, sino una : está bien y se mostrará como un / en el Finder.

Algunas aplicaciones pueden ser más restrictivas y prohibir que los personajes eviten confusiones o porque mantienen la lógica del sistema operativo Mac OS clásico anterior o la compatibilidad de nombres entre plataformas.

Cuestiones relacionadas