2010-02-11 2 views

Antwort

175

Um zu überprüfen, ob ein Verzeichnis mit dem Namen „Ordner“ Verwendung existiert:

QDir("Folder").exists(); 

Um einen neuen Ordner zu erstellen Verwendung der Bezeichnung „Mein Ordner“:

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

Wie vergleicht sich diese Antwort mit @ Petrucios Antwort? Das kann ich aus den Unterlagen nicht ableiten. –

+0

Warum ist es nicht statisch? 'QDir :: exists (" absolutepath ")' und 'QDir :: mkdir (" "absolutepath") ' – yalov

+0

@yalov - weil es mit nicht-statischem' QDir :: mkdir ("relativer_pfad") kollidieren würde '. Nicht möglich beide Überladungen haben –

-5

Warum etwas anderes verwenden?

mkdir(...); 
+19

Portabilität (Teil des gesamten Punktes von Qt) –

103

beide Um zu überprüfen, ob es existiert und erstellen, wenn es nicht der Fall ist, einschließlich Vermittler:

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

Wenn Sie QDir.mkpath() es gibt true zurück, wenn der Pfad bereits vorhanden ist, in der Andererseits gibt QDir.mkdir() false zurück, wenn der Pfad bereits existiert. Sie müssen also je nach Programm wählen, welche besser passt.

können Sie sehen mehr auf Qt Documentation

0

Wenn Sie einen leeren Ordner benötigen, können Sie Schleife, bis Sie einen leeren Ordner, den Sie

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

Dieser Fall erhalten Sie einen Ordnernamen mit einer Nummer.

Verwandte Themen