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

gol*_*log 14 c++ qt filter qdir

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

这是我的代码示例:

QDir export_folder("C:\path");
QStringList fileList = export_folder.setNameFilters(QStringList()<<"*.exe");
Run Code Online (Sandbox Code Playgroud)

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

我希望fileList只包含扩展名为.exe NOT .exe*的文件.

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

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

小智 20

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

QDir export_folder("C:\\path");
export_folder.setNameFilters(QStringList()<<"*.exe");
QStringList fileList = export_folder.entryList();
Run Code Online (Sandbox Code Playgroud)

在Qt 5.0.1的Linux中,过滤按预期工作(不返回以"exe2"结尾的文件).