Windows FindFirstFile多个文件类型

Windows FindFirstFile多个文件类型,windows,winapi,Windows,Winapi,是否可以使用Windows API函数FindFirstFile同时搜索多种文件类型,例如*.txt和*.doc 我试图用'\0'分隔模式,但它不起作用-它只搜索第一个模式(我想,这是因为它认为'\0'是字符串的结尾) 当然,我可以用*.*.模式调用FindFirstFile,然后检查我的模式或为每个模式调用它,但我不喜欢这个想法-我只会在没有其他解决方案的情况下使用它。没有提到允许多个搜索模式的FindFirstFile,因此它不存在 在这种情况下,最好使用打开的选择(如C:\\some di

是否可以使用Windows API函数
FindFirstFile
同时搜索多种文件类型,例如
*.txt
*.doc

我试图用
'\0'
分隔模式,但它不起作用-它只搜索第一个模式(我想,这是因为它认为
'\0'
是字符串的结尾)

当然,我可以用
*.*.
模式调用
FindFirstFile
,然后检查我的模式或为每个模式调用它,但我不喜欢这个想法-我只会在没有其他解决方案的情况下使用它。

没有提到允许多个搜索模式的
FindFirstFile
,因此它不存在

在这种情况下,最好使用打开的选择(如
C:\\some directory\*
*
)进行扫描,然后根据
WIN32\u FIND\u DATA
cFileName
成员进行筛选,使用(或适当的变体)查找扩展名。对于组成文件扩展名的一小部分字符,它应该运行得非常快


如果您知道所有扩展名都是3个字符,那么您应该能够将其屏蔽为
*。?
以加快速度。

这是不受支持的。使用不同的通配符运行两次。或者使用
*.*
并过滤结果。这绝对是一个更好的选择,因为支持传统的MS-DOS 8.3文件名,所以通配符是不明确的。例如,*.doc这样的通配符可以同时找到.doc和.docx文件。像
longfilename.docx
这样的文件名也会创建一个名为
LONGFI~1.DOC

的条目据我所知,您不能指定多个通配符。您必须使用
*
并自己进行筛选。性能问题不是筛选文件名需要多长时间,因为这必须在某个地方完成。事实上,您一次又一次地使用API函数。然而,根据我的经验,FindNextFile的性能相当好,所以我怀疑这是个问题。