Caracteres permitidos en el nombre del archivo
¿Dónde puedo encontrar una lista de caracteres permitidos en los nombres de archivos, según el sistema operativo? (por ejemplo, en Linux, el carácter :
está permitido en los nombres de archivos, pero no en Windows)
Deberías comenzar con la página Nombre de archivo de Wikipedia . Tiene una tabla de tamaño decente ( Comparación de limitaciones de nombres de archivos ), que enumera los caracteres reservados para muchos sistemas de archivos.
También tiene una gran cantidad de información adicional sobre cada sistema de archivos, incluidos nombres de archivos reservados, como CON
en MS-DOS. Menciono eso solo porque una vez me picó cuando acorté un archivo de inclusión de const.h
a con.h
y pasé media hora averiguando por qué el compilador se colgaba.
Resulta que DOS ignoró las extensiones para dispositivos, por lo que con.h
era exactamente igual que con
la consola de entrada (lo que significa, por supuesto, que el compilador estaba esperando que escribiera el archivo de encabezado antes de continuar).
Bien, entonces mira la Comparación de sistemas de archivos si solo te interesan los sistemas de archivos de los principales jugadores:
- Windows (FAT32, NTFS): cualquier Unicode excepto
NUL
,\
,/
,:
,*
,?
,"
,<
,>
.|
Además, no hay espacios al principio ni al final, ni puntos al final . - Mac (HFS, HFS+): cualquier Unicode válido excepto
:
o/
- Linux (ext[2-4]): cualquier byte excepto
NUL
o/
por lo tanto, cualquier byte excepto NUL
, \
, /
, :
, *
, ?
, "
, <
, >
y |
no puede hacer que los archivos/carpetas llamen .
o ..
no tengan caracteres de control (por supuesto).