【Qt】【QDirIterator】サブディレクトリを含むファイル検索
QDirIterator でサブディレクトリを含むファイル検索をする。
QDirIterator::IteratorFlags を設定すればok
以下はユーザーのピクチャフォルダのjpeg,pngファイルを検索するやつ
// ユーザーのPicturesフォルダパスを取得 QString dirPath = QDesktopServices::storageLocation ( QDesktopServices::PicturesLocation); // 対象のファイル名フィルタ QStringList nameFilters; nameFilters << "*.jpg" << "*.png"; // ファイルフィルタ QDir::Filters filters = QDir::Files; // 対象フラグ QDirIterator::IteratorFlags flags = QDirIterator::NoIteratorFlags; // サブディレクトリを探索するかどうか bool canSerchSubDir= true; if(canSerchSubDir) { flags = QDirIterator::Subdirectories; } // イテレーターの生成 QDirIterator it(dirPath, nameFilters, filters, flags); QStringList files; while (it.hasNext()) { QString file = it.next(); files << file; qDebug() << file; }
隠しフォルダも対象とするときは、QDir::Hidden を追加します
filters |= QDir::Hidden
[QTBUG-30499] QDirIterator does not show "hidden" files - Qt Bug Tracker