文件名中允许的字符

我在哪里可以find文件名中允许的字符列表,取决于操作系统? (例如,在Linux上,文件名中允许使用':'字符,但不能在Windows上使用)

您可以从维基百科文件名页面开始。 它有一个相当体面的表( Comparison of filename limitations )列出了相当多的文件系统的保留字符。

以及保留的文件名称本身像在MS-DOS下的CON 。 我记得有一次,当我把包含文件从const.h缩短到con.h并花了半个小时搞清楚编译器为什么挂起。 打开DOS忽略设备的扩展名,使得con.hcon ,input控制台(当然,编译器正在等待我在input头文件之前继续input)完全相同。

在Windows操作系统上创build一个文件,并为其指定一个无效的字符,例如文件名中的\ 。 因此,您将得到一个文件名中包含所有无效字符的popup窗口。

在这里输入图像描述

好的,所以看文件系统的比较,如果你只关心主播的文件系统:

  • Windowz(FAT32,NTFS):除NUL\
  • Mac(HFS,HFS +):任何有效的Unicode除外:/
  • Linux(ext [2-4]):除NUL以外的任何字节

所以除了NUL/\ NUL之外的任何字节都不能有文件/文件夹的调用...