如何创建带有特殊字符(如 \ / : * ? " < > | [重复])的文件夹名称或文件名

如何创建带有特殊字符(如 \ / : * ? " < > | [重复])的文件夹名称或文件名

我的问题是,在基于 Windows 的操作系统中,我无法使用特殊字符(如 \ / : * ? " < > |)来命名我的文件夹或文件。这对我来说非常重要,给出包含此类字符的文件/文件夹的名称。

我已经搜索并参考了很多网站来解决此问题,但都无济于事。我也阅读了 Microsoft 支持页面,他们建议使用其他字符。这是它的链接,https://support.microsoft.com/en-us/kb/177506

我已经尝试使用 Alt 按钮 + 此类特殊字符的 ASCII 代码编号(从数字键盘键开始),例如重命名文件/文件夹并按 Alt+60(对于 < 字符)它仍然给出消息,文件名不能包含以下任何字符:\ / : * ? " < > |

请给我建议合适的解决方案,以便我可以用这种特殊字符来命名我的文件/文件夹。

答案1

对于我来说,命名包含这些字符的文件/文件夹非常重要。

这对你来说可能很重要,但你必须放弃它并找到不同的方法来解决你的问题。

处理文件名的 Windows 操作系统函数调用不允许使用这些字符。

它们之所以被禁止是因为它们还有其他用途:

  • \- 保留用作路径分隔符和逃脱特点
  • /- 保留用作路径分隔符
  • :- 保留用作驱动器名称分隔符
  • *?- 保留用作通配符人物
  • "- 保留用于引用包含空格的名称
  • <, >|- 保留用作命令重定向运算符

当然,您可以使用不同的操作系统创建名称包含这些字符的文件(只要该操作系统可以读取/写入 Windows 文件系统)。

但是,您将无法使用任何 Windows 程序对这些文件执行任何操作,并且它们将无法理解文件名并会产生错误。


命名文件、路径和命名空间

命名约定

以下基本规则使应用程序能够创建和处理文件和目录的有效名称,而不管文件系统如何:

...

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

  • 以下保留字符:

    < (less than)
    > (greater than)
    : (colon)
    " (double quote)
    / (forward slash)
    \ (backslash)
    | (vertical bar or pipe)
    ? (question mark)
    * (asterisk)
    
  • 整数值零,有时称为 ASCII NUL 字符。
  • 整数表示形式在 1 到 31 范围内的字符,但允许使用这些字符的备用数据流除外。有关文件流的更多信息,请参阅文件流。
  • 目标文件系统不允许的任何其他字符。

来源命名文件、路径和命名空间


但无论如何我真的想这样做。

安装赛格威并使用touch

我还没有测试所有的可能性,但以下工作:

touch :
touch \|
touch \"
touch \>

示例输出:

DavidPostill@Hal /f/test/impossible
$ ll
total 0
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:03 '"'
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:02 :
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:02 '|'
-rw-rw-rw-+ 1 DavidPostill None 0 Aug 10 21:07 '>'

正如您所见,它们在 Windows 中不可用:

F:\test\impossible>dir
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test\impossible

10/08/2016  21:07    <DIR>          .
10/08/2016  21:07    <DIR>          ..
10/08/2016  21:03                 0 
10/08/2016  21:02                 0 
10/08/2016  21:07                 0 
10/08/2016  21:02                 0 
               4 File(s)              0 bytes
               2 Dir(s)  1,772,601,536,512 bytes free

在此处输入图片描述

答案2

建立自己的字体集。用保留字符的图像替换一些不使用的字符。

答案3

在 Windows 中,您无法创建包含这些字符的文件。没有解决方案,因为这些字符被 Win32 API 禁止。

Win32 是 POSIX 命名空间的子集,不区分大小写。它使用所有 Unicode 字符,但以下字符除外:'"' '*' '/' ':' '<' '>' '?' '\' '|' NB 名称不能以点 '.' 或空格 '' 结尾。

--http://dubeyko.com/development/FileSystems/NTFS/ntfsdoc.pdf

相关内容