为什么使用*.*
模式调用FindFirstFile
与Windows
这样的名称匹配?
编辑:我想我也可以猜测发生了什么,但是有没有关于原因的文档?
答案 0 :(得分:5)
在博客文章'How did wildcards work in MS-DOS?'中,Raymond Chen介绍了如何实现原始DOS通配符匹配。在帖子的最后,他指出了如何将*.*
作为Win32通配符匹配算法中的特殊情况处理。
帖子的引用
For example, if your pattern ends in .*, the .* is ignored. Without this rule, the pattern *.* would match only files that contained a dot, which would break probably 90% of all the batch files on the planet, as well as everybody's muscle memory, since everybody running Windows NT 3.1 grew up in a world where *.* meant all files.
答案 1 :(得分:1)
*.*
匹配目标目录中的所有内容。
这是因为*.
匹配到最后一段时间;如果名称中有 no 句点,则该名称将被视为在一段时间内结束;因此*.
仅匹配以句点开头的名称和不包含句点(.afile / adirname
)的名称,如果您在*
的末尾添加*.*
,那么它也会匹配到最后一个句号因此包括包含句点的文件名,这包括所有可能的文件名。