QDir.setNameFilter如何只显示特定扩展名的文件?

16

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

这是我的代码示例:

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

处理后,fileList中包含字符串"test.exe1"。

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

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

有人能帮助澄清一下吗,还是我需要手动处理fileList?

2个回答

23
首先,setNameFilters不会返回QStringList,它什么也不返回。你的代码应该像这样:
QDir export_folder("C:\\path");
export_folder.setNameFilters(QStringList()<<"*.exe");
QStringList fileList = export_folder.entryList();

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


4
此外,如果您想显示具有多种扩展名的文件,可以按照以下方式操作。
export_folder.setNameFilters( QStringList() << "*.exe" << "*.pdf" << "*.docx" << "*.jpg" );

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接