Barra laterale

programmazione:qt:scandire_directory

Scandire i file di una directory con qt

Autore: Fabio Di Matteo
Ultima revisione: 13/07/2013

Ecco come scandire i file di una direcory in base ad un filtro del tipo *.txt.

Scanzione non ricorsiva

#include <QDir>
#include <QFileInfo>
#include <QStringList>
...
 
   QDir dir ("/home/fabio/mydir");
   QStringList filters ("*.txt");
   QFileInfoList list = dir.entryInfoList (filters);
   for (int i = 0; i < list.size(); ++i)
   {
       QFileInfo fInfo = list.at(i);
       qDebug() << fInfo.absoluteFilePath();
   }

Nella struttura fInfo abbiamo le informazioni sul file corrente.

Scanzione ricorsiva

#include <QDir>
#include <QFileInfo>
...
 
void scanDirs(QString folder)
{
    QDir dir(folder);
    if (dir.exists())
    {
        foreach(QFileInfo info, dir.entryInfoList(QDir::NoDotAndDotDot | QDir::Files | QDir::AllDirs ))
        {
 
            if (info.isFile())
            {
 
                //Qui potremmo lavorare con il file corrente
 
            }
            if (info.isDir())
            {
                //Entriamo ricorsivamente nella prossima directory
                scanDirs(info.absoluteFilePath());
 
            }
        }
    }
}

Come si puo' vedere dall'esempio possiamo lavorare con i file o le directory alltraverso la struttura info .


programmazione/qt/scandire_directory.txt · Ultima modifica: 18/04/2018 - 15:48 (modifica esterna)