16

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

这是我的代码示例:

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

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

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

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

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

4

2 回答 2

23

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

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

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

于 2013-03-21T16:55:50.967 回答
4

此外,如果您想显示具有多种扩展名的文件,您可以执行以下操作。

export_folder.setNameFilters( QStringList() << "*.exe" << "*.pdf" << "*.docx" << "*.jpg" );
于 2014-08-01T05:23:57.913 回答