#include <QDirIterator>
#include <QDebug>
// 使用 QDirIterator 获取所有文件(包括子文件夹)
QStringList getAllFilesWithIterator(const QString &folderPath, bool recursive = true) {
QStringList fileList;
QDirIterator::IteratorFlag flag = recursive ?
QDirIterator::Subdirectories :
QDirIterator::NoIteratorFlags;
QDirIterator it(folderPath, QDir::Files, flag);
while (it.hasNext()) {
it.next();
fileList << it.filePath();
}
return fileList;
}
// 使用示例
void example() {
QString folderPath = "C:/Users/YourName/Documents";
// 递归获取所有文件
QStringList allFiles = getAllFilesWithIterator(folderPath, true);
// 只获取当前目录的文件
QStringList topFiles = getAllFilesWithIterator(folderPath, false);
qDebug() << "递归获取的文件数量:" << allFiles.size();
qDebug() << "当前目录的文件数量:" << topFiles.size();
}