#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();
}

 

标签: none

添加新评论