setNameFilters 没有按我的预期工作,所以如果有人能解释我是否使用不正确,或者这可能是 Qt 中的错误:
这是我的代码示例:
QDir export_folder("C:\path");
QStringList fileList = export_folder.setNameFilters(QStringList()<<"*.exe");
处理后fileList包含字符串“test.exe1”
我希望 fileList 只包含扩展名为 .exe 而不是 .exe* 的文件。
如果我想要比 .exe 更长的文件扩展名,我希望将 "*.exe*"
作为我的过滤器。
有人可以帮忙澄清一下,还是事后我必须手动处理我的文件列表?
最佳答案
对于初学者,setNameFilters
不返回 QStringList
,它什么也不返回。您的代码应如下所示:
QDir export_folder("C:\\path");
export_folder.setNameFilters(QStringList()<<"*.exe");
QStringList fileList = export_folder.entryList();
在使用 Qt 5.0.1 的 Linux 中,过滤按预期工作(不返回以“exe2”结尾的文件)。
关于c++ - QDir.setNameFilter 如何仅显示具有特定扩展名的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15553258/