【问题标题】:"Safe" File naming“安全”文件命名
【发布时间】:2012-09-28 06:46:52
【问题描述】:

在 Windows、Mac OS、Linux 等中是否会遇到任何“不安全”的文件名?

例如:

  • New Video 2012-External Room
  • GED Practice Sheet
  • RgRrE-re-_d Da-

我听说即使使用空格、下划线、大写字母和破折号命名文件也可能存在问题,即使 Windows 并未将它们包含在其禁止字符列表中。这是真的?我隐约记得看到不区分大小写字符的程序,并且我知道 HTML URL 将不安全的 ASCII 字符编码为%(例如空格)。

【问题讨论】:

  • 您是否只对 Windows 中的“不安全”名称或您在问题开头列出的所有操作系统感兴趣?不同的操作系统对合法文件名有不同的规定。
  • @rrufai 所有操作系统。

标签: windows file character ascii naming


【解决方案1】:

类 Unix(包括 Linux 和 Mac OS)和 Windows 下划线应该没有问题。空格通常也应该没问题,但您偶尔会发现无法处理它们的错误代码。

对于 Windows,不是大写字母有问题。这是因为 Windows 文件系统不区分大小写,因此在某些情况下,在互操作时(例如,使用区分大小写的 git 存储库)您可能会遇到问题(例如,存储库最终会出现大小写不同的重复项)。

我不确定-。避免它的一个原因是- 对于许多命令行程序具有特殊含义(例如rm -r)。所以你必须使用像.\-r 这样烦人的语法。我通常也会避免像 % 这样更奇特的。

【讨论】:

    【解决方案2】:

    这在很大程度上取决于使用环境。某些非禁止字符可能会导致某些程序出现问题,但绝大多数使用标准系统 API 的应用程序应该不会遇到任何问题。

    某些程序(尤其是命令行工具)可能对文件名中是否存在空格很敏感。其他人可能只在内部使用 ASCII,因此无法处理包含基本 ASCII 之外的字符的文件名。 (总的来说,大多数现代操作系统几乎可以接受文件名中的任何 Unicode 字符)。

    某些工具可能需要对某些字符进行转义(例如,批处理脚本中的 %),而其他工具可能不喜欢在文件名中包含引号。

    最后,关于大写/小写的说明:大多数 Windows 文件系统都保留大小写,但在其他方面不区分大小写,因此大小写差异通常无关紧要。

    但是,请注意,在几乎所有情况下,即使需要一些变通方法才能使它们正常工作,这些文件仍然可以使用。

    【讨论】:

      猜你喜欢
      • 2015-08-06
      • 1970-01-01
      • 1970-01-01
      • 2021-10-24
      • 2013-10-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-23
      相关资源
      最近更新 更多