2010-02-11 3 views

Répondre

175

Pour vérifier si un répertoire nommé « Dossier » existe utilisation:

QDir("Folder").exists(); 

Pour créer un nouveau dossier nommé utilisation « MonDossier »:

QDir().mkdir("MyFolder"); 
+1

Comment cette réponse se compare-t-elle à la réponse de @ Petrucio? Je ne peux pas déduire cela des docs. –

+0

Pourquoi ce n'est pas statique? 'QDir :: exists (" absolutepath ")' et 'QDir :: mkdir (" "absolutepath") ' – yalov

+0

@yalov - car il entrerait en collision avec un' QDir :: mkdir non statique ("chemin relatif") '. –

-5

Pourquoi utiliser quoi que ce soit d'autre?

mkdir(...); 
+19

portabilité (partie du point entier de Qt) –

103

Pour vérifier si les deux il existe et créer si elle n'a pas, y compris les intermédiaires:

QDir dir("path/to/dir"); 
if (!dir.exists()) { 
    dir.mkpath("."); 
} 
10

Lorsque vous utilisez QDir.mkpath() retourne vrai si le chemin existe déjà, dans la d'autre part QDir.mkdir() renvoie false si le chemin existe déjà. Donc, en fonction de votre programme, vous devez choisir celui qui convient le mieux.

Vous pouvez voir plus sur Qt Documentation

0

Si vous avez besoin d'un dossier vide, vous pouvez boucle jusqu'à ce que vous obtenez un dossier vide

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

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

Questions connexes