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