You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

QDir::match()返回意外结果:匹配"*.exe"与"path/file.exe"返回false

QDir::match返回false的原因及解决方法

原因

QDir::match() 默认是匹配整个输入字符串,而非仅提取文件名进行匹配。当你传入"path/file.exe"作为第二个参数时,"*.exe"这个通配符会尝试匹配完整路径——它要求字符串以任意字符开头、以.exe结尾,但"path/file.exe"的前缀是path/,不符合该通配规则,因此返回false。

解决方法

可以通过以下几种方式修正:

  • 先提取文件名再匹配:
QFileInfo fileInfo("path/file.exe");
bool m = QDir::match("*.exe", fileInfo.fileName());
  • 使用适配路径结构的通配符:
bool m = QDir::match("*/*.exe", "path/file.exe");
  • 调用指定匹配规则的重载(Qt 5.14及以上版本支持):
bool m = QDir::match(QDir::MatchFileName, "*.exe", "path/file.exe");

内容的提问来源于stack exchange,提问作者Laszlo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 22:13:10