Windows的FindFirstFile()函数中的错误?

时间:2011-05-29 07:11:42

标签: winapi file file-io wildcard

为什么使用*.*模式调用FindFirstFileWindows这样的名称匹配?

编辑:我想我也可以猜测发生了什么,但是有没有关于原因的文档?

2 个答案:

答案 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)的名称,如果您在*的末尾添加*.*,那么它也会匹配到最后一个句号因此包括包含句点的文件名,这包括所有可能的文件名。