web-dev-qa-db-fra.com

QDir mkdir avec absolutepath

J'ai un problème avec la création de dir avec Qt. Je voudrais créer un répertoire dans documents'dir alors, je fais certaines choses comme ça:

QString path("C:/Users/Me/Documents/MyApp/profiles/");
Qdir dir = QDir::root();
dir.mkdir(path);

Mais ça ne marche pas! J'ai testé avec "/" et "\" pour les séparateurs mais dans les deux cas, cela ne fonctionne pas.

Comment je peux créer mon répertoire?

Je vous remercie.

11
Guillaume

Essayez d'utiliser QDir::mkpath comme dir.mkpath(path);

13
Dcow

Tu peux le faire:

QDir dir(path);
if (!dir.exists()){
  dir.mkdir(".");
}
29
yerlilbilgin

QDir dir = QDir::root() crée une instance de QDir configurée pour pointer vers la racine et copie ce paramètre dans dir. Pour éviter la copie et le code supplémentaires, vous pouvez utiliser QDir dir(QDir::root);. Sous Windows, il pointe vers la racine du lecteur système, généralement C:\.

dir.mkdir(path); tentera de créer un sous-répertoire nommé path dans le répertoire actuellement configuré (racine). Cette méthode attend un nom de répertoire unique et non un chemin d'accès complet. Il renvoie également un résultat bool que vous devriez vérifier.

Vous voudrez probablement appeler dir.mkpath(path) qui tentera de créer le sous-répertoire spécifié ainsi que tous les répertoires parents nécessaires y conduisant. Encore une fois, vous devriez vérifier le résultat pour voir s'il a réussi.

4
Arnold Spence
1
shofee