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

Kar*_*ter 3 windows path dotfiles filenames directory-listing

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

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

phu*_*clv 7

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

  • 使用句点作为路径中的目录组件来表示当前目录,例如“.\temp.txt”。有关更多信息,请参阅路径
  • 使用两个连续的句点 (..) 作为路径中的目录组件来表示当前目录的父目录,例如“..\temp.txt”。有关更多信息,请参阅路径

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

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

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

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

一些字符将被删除(除了分隔符和相关段的运行)。

如果段在单个期间结束,则该期间将被删除。单周期或双周期的一段属于上述相对成分规则。三个句点(或更多)的段不符合任何这些规则,实际上是一个有效的文件/目录名称。

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

路径规范化

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

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

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

也可以看看