天天看點

c語言周遊子檔案夾,c + +遞歸地周遊目錄中的所有檔案及其在Q中的子目錄

我使用了QDirIterator。

這是我的操作方式,非常快地以遞歸方式找到所有XML絕對檔案路徑的簡單性(Qt4.8.1):

// used to store the file paths

filesStack = new QStack();

// I use a file dialog to let the user choose the root folder to search in

if (fileDialog->exec() == QFileDialog::Accepted) {

QDir selectedDir(fileDialog->selectedFiles().first());

selectedDir.setFilter(QDir::Files |

QDir::Dirs | QDir::NoDot | QDir::NoDotDot);

QStringList qsl; qsl.append("*.xml"); // I only want XML files

selectedDir.setNameFilters(qsl);

findFilesRecursively(selectedDir);

}

// this function stores the absolute paths of each file in a QVector

void findFilesRecursively(QDir rootDir) {

QDirIterator it(rootDir, QDirIterator::Subdirectories);

while(it.hasNext()) {

filesStack->push(it.next());

}

}

感謝大家的提示。

編輯:我可能省略了一些聲明,當心。