【发布时间】:2011-12-25 14:15:50
【问题描述】:
我正在使用 Windows API 调用 FindFirstFile 和 FindNextFile 在目录中搜索与某个通配符字符串匹配的文件。例如,我可能想查找目录中的所有 XML 文件,因此我使用模式“*.xml”进行搜索。
我遇到的问题是,如果我正在搜索 3 个字母的扩展名,并且文件的扩展名以该 3 个字母的扩展名开头,即使扩展名包含更多内容,它也会被我的搜索选中前 3 个字符之后的字符。例如,如果我的文件名为 somelongname.xmlaaaa,则搜索“*.xml”将获取该文件。该文件的短名称是 somelo~1.xml,它与我的通配符字符串匹配。
我可以自己进行通配符匹配来解决这个问题,但大概 Windows API 能够比我更有效地做到这一点,而且我的代码会更简单。据我所知,没有办法强制这些函数忽略短名称。是否有任何 API Windows 公开了此功能?
【问题讨论】:
标签: c++ c windows winapi filesystems