C++ 递归地循环遍历目录并收集所有xml文件
我正试图通过给定的目录路径循环并重新收集所有xml文件。但是,由于某些原因,我的结果只返回部分文件路径,而不是全部文件路径。我不确定我在这件事上哪里出了问题 若你们建议我不要使用QT迭代器,也可以使用其他方法 它应该输出:C++ 递归地循环遍历目录并收集所有xml文件,c++,qt,C++,Qt,我正试图通过给定的目录路径循环并重新收集所有xml文件。但是,由于某些原因,我的结果只返回部分文件路径,而不是全部文件路径。我不确定我在这件事上哪里出了问题 若你们建议我不要使用QT迭代器,也可以使用其他方法 它应该输出: Debugging starts FILE: "C:/Users/Martini/Desktop/trash/master/a.xml" FILE: "C:/Users/Martini/Desktop/trash/master/b.xml" FILE: "C:/Users/
Debugging starts
FILE: "C:/Users/Martini/Desktop/trash/master/a.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/b.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/c.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/d.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/e.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/f.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/g.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/h.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/i.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/j.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/k.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/l.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/folder_a/m.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/folder_b/n.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/folder_c/o.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/folder_d/p.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/folder_e/q.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/folder_e/r.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/folder_f/s.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/folder_f/t.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/folder_g/u.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/folder_g/v.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/folder_g/w.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/folder_g/x.xml"
COUNT: 24
在循环中调用it.next()
两次。因此,您将跳过每一个文件。换句话说,输出奇数位置的每个文件路径,收集偶数位置的每个文件路径
while(it.hasNext()) {
qDebug() << "FILE" << it.next();
filepaths.append(it.next());
}
while(it.hasNext()){
qDebug()你期望从你的程序中得到什么输出?你实际得到什么输出?更具体地说,没有返回的文件有哪些示例?我更新了问题以提供有关问题的详细信息。我注意到它返回文件夹路径,我如何编辑它以仅返回xml文件的文件路径?这是另一个问题。请询问new one.ha天哪,请饶了我吧。最初的问题是收集xml文件。我不是在提出一个全新的问题。我会想出来的,算了吧。
Debugging starts
FILE: "C:/Users/Martini/Desktop/trash/master/a.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/b.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/c.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/d.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/e.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/f.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/g.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/h.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/i.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/j.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/k.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/l.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/folder_a/m.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/folder_b/n.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/folder_c/o.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/folder_d/p.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/folder_e/q.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/folder_e/r.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/folder_f/s.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/folder_f/t.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/folder_g/u.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/folder_g/v.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/folder_g/w.xml"
FILE: "C:/Users/Martini/Desktop/trash/master/folder_g/x.xml"
COUNT: 24
while(it.hasNext()) {
qDebug() << "FILE" << it.next();
filepaths.append(it.next());
}
while(it.hasNext()) {
const auto& fn = it.next();
qDebug() << "FILE" << fn;
filepaths.append(fn);
}
while(it.hasNext()) {
qDebug() << "FILE" << it.next();
filepaths.append(it.filePath());
}