2013-03-21 446 views
10

setNameFilters不工作,我所期望的,因此,如果任何人都可以,如果我使用它错误地解释,或者这也许是Qt中的一个错误:QDir.setNameFilter如何仅显示具有特定扩展名的文件?

这里是我的代码示例:

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

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

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

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

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

回答

13

对于初学者,setNameFilters不返回QStringList,它什么都不返回。您的代码应该是这样的:

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

过滤按预期工作(没有返回与“EXE2”结尾的文件),在Linux中使用Qt 5.0.1。

+0

如果我想同时显示.mp3和.wav,怎么办?谢谢 – Casper 2014-08-01 05:19:22

2

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

export_folder.setNameFilters(QStringList() << "*.exe" << "*.pdf" << "*.docx" << "*.jpg"); 
相关问题