163 votes

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

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

236voto

Kyle Lutz Points 4792

Pour vérifier si un répertoire nommé "Dossier" existe, utilisez :

QDir("Folder").exists();

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

QDir().mkdir("MyFolder");

1 votes

Comment cette réponse se compare-t-elle à la réponse de @Petrucio ? Je ne peux pas le déduire de la documentation.

1 votes

Pourquoi n'est-il pas statique ? QDir::exists("absolutepath") et QDir::mkdir(""absolutepath")

0 votes

@yalov - parce qu'il entrerait en collision avec le non-statique QDir::mkdir("relative_path") . Il n'est pas possible d'avoir les deux surcharges.

176voto

Petrucio Points 1613

Pour à la fois vérifier s'il existe et créer s'il n'existe pas, y compris les intermédiaires :

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

1 votes

Ça a marché comme un charme !

12voto

Vitor Santos Points 32

Lorsque vous utilisez QDir.mkpath(), il renvoie vrai si le chemin existe déjà, d'autre part QDir.mkdir() renvoie faux si le chemin existe déjà. Ainsi, en fonction de votre programme, vous devez choisir ce qui convient le mieux.

Vous pouvez en voir plus sur Documentation Qt

1voto

Paladin Points 444

J'aime QDir.mkpath() un peu plus.

-12voto

matiasf Points 862

Pourquoi utiliser autre chose ?

  mkdir(...);

1 votes

Parce que vous ne pouvez pas l'utiliser comme ça dans Qt.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X