c++ - QDir.setNameFilter 如何仅显示具有特定扩展名的文件?

标签 c++ qt filter qdir

setNameFilters 没有按我的预期工作,所以如果有人能解释我是否使用不正确,或者这可能是 Qt 中的错误:

这是我的代码示例:

QDir export_folder("C:\path");
QStringList fileList = export_folder.setNameFilters(QStringList()<<"*.exe");

处理后fileList包含字符串“test.exe1”

我希望 fileList 只包含扩展名为 .exe 而不是 .exe* 的文件。

如果我想要比 .exe 更长的文件扩展名,我希望将 "*.exe*" 作为我的过滤器。

有人可以帮忙澄清一下,还是事后我必须手动处理我的文件列表?

最佳答案

对于初学者,setNameFilters 不返回 QStringList,它什么也不返回。您的代码应如下所示:

QDir export_folder("C:\\path");
export_folder.setNameFilters(QStringList()<<"*.exe");
QStringList fileList = export_folder.entryList();

在使用 Qt 5.0.1 的 Linux 中,过滤按预期工作(不返回以“exe2”结尾的文件)。

关于c++ - QDir.setNameFilter 如何仅显示具有特定扩展名的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15553258/

相关文章:

c++ - C+ 对 vector 元素的各个成员进行排序

java - Java 中的 Mmimic C++ 模板函数

c++ - 体系结构 x86_64 : "_CFBundleCopyResourceURL", 的 undefined symbol

c++ - 图像旋转,伪造图像直方图

c++ - Visual C++ 中的预处理器工具 __COUNTER__

c++ - 用C/C++在Linux中读取内核信息

Javascript 过滤器非数组 JSON 对象

javascript - 使用 jQuery 过滤标签

qt - 显示隐藏的 QTableView 列

php - Laravel,在filter中调用filter