首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用QDirIterator只迭代某些类型的文件

如何使用QDirIterator只迭代某些类型的文件
EN

Stack Overflow用户
提问于 2015-02-11 19:43:04
回答 1查看 10.3K关注 0票数 5

我只想遍历.xml文件(所选文件夹及其子目录下的所有文件),这在QDirIterator中是可能的吗?

代码语言:javascript
运行
复制
QDirIterator iter( rootDir, QDir::Files | QDir::Dirs | QDir::NoDotAndDotDot);

QString fileName;

while(iter.hasNext() )
{
   qDebug() << iter.next();

   fileName = iter.fileName();

   // now I have to check if fileName is indeed a .xml extension
}

从上面的代码中可以看出,如果我的迭代器可以跳转到.xml文件,而我不需要检查loop..is中的文件扩展名,那么是否有可能呢?

EN

回答 1

Stack Overflow用户

发布于 2015-02-11 19:49:18

其中一个QDirIterator的构造函数允许nameFilters参数:

代码语言:javascript
运行
复制
QDirIterator::QDirIterator ( const QString & path, const QStringList & nameFilters, QDir::Filters filters = QDir::NoFilter, IteratorFlags flags = NoIteratorFlags )

构造一个可以在路径上迭代的QDirIterator,使用nameFilters和过滤器。

nameFilters参数没有得到适当的文档说明,但很有可能像在QDir::setNameFilters中那样工作。

代码语言:javascript
运行
复制
QDirIterator it(rootdir, QStringList() << "*.xml", QDir::Files, QDirIterator::Subdirectories);
while (it.hasNext()) {
    qDebug() << it.next();
}
票数 11
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28463090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档