web-dev-qa-db-fra.com

Vérifier si un dossier existe (et créer des dossiers) dans Qt, C++

Dans Qt, comment puis-je vérifier si un dossier donné existe dans le répertoire actuel?
S'il n'existe pas, comment puis-je créer un dossier vide?

139
Switch

Pour vérifier s’il existe un répertoire nommé "Dossier", utilisez:

QDir("Folder").exists();

Pour créer un nouveau dossier nommé "MyFolder", utilisez:

QDir().mkdir("MyFolder");
207
Kyle Lutz

Pour vérifier si elle existe et créer si ce n'est pas le cas, y compris les intermédiaires:

QDir dir("path/to/dir");
if (!dir.exists())
    dir.mkpath(".");
129
Petrucio

Lorsque vous utilisez QDir.mkpath (), il renvoie true si le chemin existe déjà, tandis que QDir.mkdir () renvoie false si le chemin existe déjà. Donc, en fonction de votre programme, vous devez choisir celui qui vous convient le mieux.

Vous pouvez en voir plus sur Documentation Qt

11
Vitor Santos

Si vous avez besoin d’un dossier vide, vous pouvez effectuer une boucle jusqu’à obtenir un dossier vide. 

    QString folder= QString ("%1").arg(QDateTime::currentMSecsSinceEpoch());
    while(QDir(folder).exists())
    {
         folder= QString ("%1").arg(QDateTime::currentMSecsSinceEpoch());
    }
    QDir().mkdir(folder);

Dans ce cas, vous obtiendrez un nom de dossier avec un numéro.

0
Midhun