QT es el mejor framework de programación en C++, siendo libre, gratuito y multiplataforma: Linux, Windows, Mac, Android, iOS, Windows RT y Linux embebido. Sus librerías contienen multitud de utlidades, pero todavía hay algunas que debemos de programar a mano.

Con este ejemplo, podemos recorrer de forma recursiva un directorio del sistema en busca de archivos con una determinada extensión.

QDirIterator

En el ejemplo, el directorio a recorrer es /carpeta y la extensión a buscar es del tipo png:

#include <QDirIterator>
 
QDirIterator dirIt("/carpeta",QDirIterator::Subdirectories);
while (dirIt.hasNext()) {
    dirIt.next();
    if (QFileInfo(dirIt.filePath()).isFile())
        if (QFileInfo(dirIt.filePath()).suffix() == "png")
            qDebug()<<dirIt.filePath();
}