FindFirstFile多种文件类型

Iva*_*van 13 windows winapi

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

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

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

Han*_*ant 17

这不受支持.使用不同的通配符运行两次.或者使用*.*并过滤结果.这绝对是更好的选择,因为支持传统的MS-DOS 8.3文件名,通配符无论如何都是模棱两可的.像*.doc这样的通配符会找到.doc和.docx文件.类似文件名longfilename.docx也会创建一个名为的条目LONGFI~1.DOC


Nec*_*lis 5

MSDN文档提及任何关于FindFirstFile允许多个搜索模式,因此它不存在.

在这种情况下,你最好的办法是使用扫描公开选拔(如C:\\some directory\**),然后筛选基础上WIN32_FIND_DATAcFileName成员之一,采用strrchr(或相应的Unicode变种),找到该扩展.对于构成文件扩展名的一小组字符,它应该运行得非常快.

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