[英]QDirIterator: Reading directories and subdirectories
我在递归读取文件时遇到了一些麻烦。 看一看:
QDir absoPath;
QString directory = QFileDialog::getExistingDirectory();
QDirIterator it(directory, QDirIterator::Subdirectories);
while(it.hasNext()){
absoPath = it.next();
QFile totalFiles(absoPath.absolutePath() + "\\Total_imagens.txt");
totalFiles.open(QIODevice::ReadOnly | QIODevice::Text);
if(totalFiles.isOpen()){
QTextStream in(&totalFiles);
while(!in.atEnd()){
qDebug() << in.readLine();
我的目标是读取 .txt 文件并计算其中的行数。 在每个子目录中,应该具有相同名称的相同 .txt 文件。 问题是迭代器多次读取同一个 .txt 文件。
有什么我可以做的吗? 更改 .txt 文件的名称是我最不想做的事情。
感谢您的耐心和帮助!
知道了!
QString absoPath;
QString directory = QFileDialog::getExistingDirectory();
QDirIterator it(directory,QDir::AllEntries |QDir::NoDotAndDotDot, QDirIterator::Subdirectories);
absoPath = it.path();
while(it.hasNext()){
QFile totalFiles(absoPath + "\\Total_imagens.txt");
totalFiles.open(QIODevice::ReadOnly | QIODevice::Text);
if(totalFiles.isOpen()){
QTextStream in(&totalFiles);
while(!in.atEnd()){
qDebug() << in.readLine();
totalFiles.close();
}
}
absoPath = it.next();
}
qDebug() << "Over";
return;
}
我唯一需要做的就是在最后获得一个 QString 来接收“it.next()”。 感谢您的帮助...标志帮助很大!
我想,迭代器通过 . 并且。 这意味着每个文件被读取 3 次。 尝试使用构造函数,您可以在其中传递值为 QDir::NoDotAndDotDot 的 dir-filter
尝试改变
QDirIterator it(directory, QDirIterator::Subdirectories);
经过
QDirIterator it(directory, QDir::NoDotAndDotDot, QDirIterator::Subdirectories);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.