我遇到的问题是,如果我正在寻找3个字母的扩展名,并且一个文件的扩展名以3个字母的扩展名开头,那么我的搜索将被抓住,即使扩展名包含更多的字符首先3.例如,如果我的文件名为somelongname.xmlaaaa,这将通过搜索“* .xml”获取.该文件的短名称为somelo〜1.xml,与我的通配符字符串相匹配.
我可以做自己的通配符来解决这个问题,但是可能Windows API能够比我更有效地执行此操作,而我的代码会更简单.据我所知,没有办法强制这些功能忽略短名称.有没有API Windows公开的这个功能?
解决方法
typedef enum _FINDEX_INFO_LEVELS { FindExInfoStandard,FindExInfoBasic,FindExInfoMaxInfoLevel } FINDEX_INFO_LEVELS;
FindExInfoBasic
The FindFirstFileEx function does not query the short file name,improving overall enumeration speed. The data is returned in a WIN32_FIND_DATA structure,and the cAlternateFileName member is always a NULL string.
然而:
Windows Server 2008,Windows Vista,Windows Server 2003,and Windows XP: This value is not supported until Windows Server 2008 R2 and Windows 7.
原文地址:https://www.jb51.cc/c/113062.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。