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

QDir.setNameFilter how to show only files with specific extensions?

本文关键字:扩展名 文件 setNameFilter 何仅 显示 QDir      更新时间:2023-10-16

setNameFilters不像我预期的那样工作,所以如果有人能解释我是否使用不当,或者这可能是Qt中的一个bug:

下面是我的代码示例:
QDir export_folder("C:path");
QStringList fileList = export_folder.setNameFilters(QStringList()<<"*.exe");

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

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

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

有人可以帮助澄清,或者我手动处理我的fileList后的事实?

对于初学者,setNameFilters不返回QStringList,它什么也不返回。你的代码应该像这样:

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

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

另外,如果您想显示具有多种扩展名的文件,您可以这样做:

export_folder.setNameFilters( QStringList() << "*.exe" << "*.pdf" << "*.docx" << "*.jpg" );