我的问题是,在基于 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