繁体   English   中英

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

[英]How to iterate through only certain type of files using QDirIterator

我想迭代.xml文件(所选文件夹及其子目录下的所有文件), QDirIterator可以QDirIterator吗?

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文件,而不是在循环中检查文件扩展名。这可能吗?

QDirIterator的一个构造函数允许使用nameFilters参数:

QDirIterator::QDirIterator ( const QString & path, const QStringList & nameFilters, QDir::Filters filters = QDir::NoFilter, IteratorFlags flags = NoIteratorFlags )

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

nameFilters参数没有正确记录,但它有可能像QDir :: setNameFilters一样工作

QDirIterator it(rootdir, QStringList() << "*.xml", QDir::Files, QDirIterator::Subdirectories);
while (it.hasNext()) {
    qDebug() << it.next();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM