webentwicklung-frage-antwort-db.com.de

QDir mkdir mit absolutepath

Ich habe ein Problem mit der Erstellung von dir mit Qt. Ich möchte ein Verzeichnis in documents'dir erstellen, also mache ich einige Dinge wie das:

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

Das geht aber nicht! Ich habe mit "/" und "\" für die Trennzeichen getestet, aber in den beiden Fällen funktioniert das nicht.

Wie kann ich mein Verzeichnis erstellen?

Vielen Dank.

11
Guillaume

Versuchen Sie, QDir::mkpath als dir.mkpath(path); zu verwenden

13
Dcow

Du kannst das:

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

QDir dir = QDir::root() erstellt eine Instanz von QDir, die so konfiguriert ist, dass sie auf root verweist, und kopiert diese Einstellung in dir. Um die zusätzliche Kopie und den zusätzlichen Code zu vermeiden, können Sie QDir dir(QDir::root); verwenden. Unter Windows zeigt es auf das Stammverzeichnis des Systemlaufwerks, normalerweise C:\.

dir.mkdir(path); versucht, ein Unterverzeichnis mit dem Namen path im aktuell konfigurierten Verzeichnis (root) zu erstellen. Diese Methode erwartet einen einzelnen Verzeichnisnamen und keinen vollständigen Pfad. Es wird auch ein Ergebnis bool zurückgegeben, das Sie überprüfen sollten.

Sie möchten wahrscheinlich dir.mkpath(path) aufrufen, das versucht, das angegebene Unterverzeichnis zusammen mit allen dazugehörigen übergeordneten Verzeichnissen zu erstellen. Überprüfen Sie das Ergebnis erneut, um festzustellen, ob es erfolgreich war.

4
Arnold Spence

bitte überprüfen Sie die folgenden Links, wo sie beschrieben haben, wie das neue Verzeichnis erstellt wird.

http://www.qtcentre.org/threads/19253-QDir-mkpath

http://www.qtforum.org/article/2210/qdir.html

http://www.developer.nokia.com/Community/Wiki/How_to_use_QDir_in_Qt

1
shofee