在 Windows 中,单个点是有效的文件名吗?

在 Windows 中,单个点是有效的文件名吗?

点 ( .) 可以是文件或目录名称的一部分,包括第一个和最后一个位置。在 UNIX 上,路径中的单个点表示当前目录,因此始终可以解析为名称不是 的目录.

有没有什么方法可以创建一个.以 Windows 命名的目录?

答案1

不是。一个点表示当前目录,两个点表示父目录,就像在 *nix 上一样

  • 使用句点作为目录成分以路径形式表示当前目录,例如“.\temp.txt”。有关详细信息,请参阅路径
  • 使用两个连续的句点 (..) 作为目录成分在路径中表示当前目录的父目录,例如“..\temp.txt”。有关更多信息,请参阅路径

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

事实上,更普遍的规则是在 Windows 中,没有文件可以以点结尾

不要以空格或句点结尾文件或目录名称。虽然底层文件系统可能支持此类名称,但 Windows shell 和用户界面不支持。不过,可以将句点指定为名称的第一个字符。例如“.temp”。

原因是它们在传递给 Win32 API 时会被规范化

一些字符将被删除(分隔符和相关段除外)。

如果片段以单个句号结尾,则该句号将被删除。单个或两个句号的片段符合上述相对组件规则。三个句号(或更多)的片段不符合这些规则中的任何一个,实际上是有效的文件/目录名称。

如果路径不是以分隔符结尾,则所有尾随句点和空格(仅限字符代码 32)都将被删除。如果最后一段只是一个或两个句点,则它属于上述相对组件规则。此规则可能导致创建带有尾随空格的目录的能力令人意外。您只需添加尾随分隔符即可。

路径规范化

但这并不意味着无法创建这些文件,因为 NTFS 命名空间完全兼容 POSIX。你只需要添加前缀\\?\即可禁用文件名规范化

对于文件 I/O,路径字符串的“\?”前缀告诉 Windows API 禁用所有字符串解析,并将其后面的字符串直接发送到文件系统

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

也可以看看

答案2

在 MS 操作系统中,单个点的含义也相同。打开 CMD 提示符,然后输入dir .作为实验。因此,您的问题的答案是否定的。

相关内容