Caracteres permitidos en el nombre del archivo

Resuelto python dude asked hace 13 años • 8 respuestas

¿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)

python dude avatar Jan 27 '11 15:01 python dude
Aceptado

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 CONen MS-DOS. Menciono eso solo porque una vez me picó cuando acorté un archivo de inclusión de const.ha con.hy pasé media hora averiguando por qué el compilador se colgaba.

Resulta que DOS ignoró las extensiones para dispositivos, por lo que con.hera exactamente igual que conla consola de entrada (lo que significa, por supuesto, que el compilador estaba esperando que escribiera el archivo de encabezado antes de continuar).

paxdiablo avatar Jan 27 '2011 08:01 paxdiablo

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 NULo/

por lo tanto, cualquier byte excepto NUL, \, /, :, *, ?, ", <, >y |no puede hacer que los archivos/carpetas llamen .o ..no tengan caracteres de control (por supuesto).

CpILL avatar Feb 12 '2016 00:02 CpILL