哪些 Unicode 字符不能用于 NTFS 文件名?

哪些 Unicode 字符不能用于 NTFS 文件名?

通常,我的程序会创建带有扩展拉丁语的文件,中日韩或文件名中的阿拉伯字符没有问题并且符合输入数据。

我印象中只有正式命名的 ASCII 字符(:\*、 ...)不能用于文件名,所以我对它们进行了清理。但最近我发现字符U+10FC0C

答案1

请参阅以下限制文件和目录命名约定在微软文档中:

  • 使用当前代码页中的任意字符作为名称,包括 Unicode 字符和扩展字符集
    (128–255) 中的字符,但以下字符除外:
  • 以下保留字符:

    • <(小于)
    • >(大于)
    • : (冒号)
    • “(双引号)
    • /(正斜杠)
    • \(反斜杠)
    • | (垂直条或管道)
    • ?(问号)
    • *(星号)
  • 整数值零,有时称为 ASCII空值特点。

  • 整数表示形式在 1 到 31 范围内的字符,但允许使用这些字符的备用数据流除外。有关文件流的更多信息,请参阅文件流。

  • 目标文件系统不允许的任何其他字符。

请阅读以下文章:私人使用区域

这意味着您要求的字符 U+10FC0C 根据定义不能被视为 Unicode 本身的标准字符。因此,不能用作 NTFS 中的文件名。

在上面的答案中它与最新的限制有关:

  • 目标文件系统不允许的任何其他字符。

相关内容