Home / Programmazione / C - C++ / Controllo esistenza file con Qt in C++
Mattepuffo

Controllo esistenza file con Qt in C++

Controllo esistenza file con Qt in C++

Oggi vediamo una piccola clase con una funzione per controllare l'esistenza di un file.

Il file lo cercheremo in più directory tanto per complicare un pò le cose.

Cominciamo con il file .h:

#ifndef CONTROLFILE_H
#define CONTROLFILE_H

#include <QFile>
#include <QStringList>

class ControlFile
{
public:
    ControlFile();
    virtual ~ControlFile();
    bool checkFile(QString file);
};

#endif // CONTROLFILE_H

Per i nostri scopi abbiamo importato i moduli QFile, che rappresenta i file, e QStringList che ci serve per costruire una lista di stringhe.

A questo punto passiamo al file di implementazione:

#include "controlfile.h"

ControlFile::ControlFile()
{
}

bool ControlFile::checkFile(QString file)
{
    bool check = FALSE;
    QStringList searchPaths;
    searchPaths << "/usr/bin/" + file << "/usr/local/bin/" + file << "/bin/" + file;

    for(int i = 0; i < searchPaths.size(); i++)
    {
        QFile f(searchPaths[i]);
        if(f.exists()) {
            check = TRUE;
            break;
        }
    }

    return check;
}

ControlFile::~ControlFile()
{
}

La nostra funzione accetta come parametro un oggetto QString, che rappresenta il file da cercare.

Nell'oggetto QStringList mettiamo la lista delle directory in cui cercare.

Nel ciclo for cicliamo sulla lista, e per ogni voce controlliamo l'esistenza del file con la funzione exists dell'oggetto QFile.