2010-02-11 68 views

Trả lời

175

Để kiểm tra xem một thư mục có tên là "Folder" tồn tại sử dụng:

QDir("Folder").exists(); 

Để tạo một thư mục mới có tên "Myfolder" sử dụng:

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

Câu trả lời này so sánh như thế nào với câu trả lời của @ Petrucio? Tôi không thể suy ra điều này từ các tài liệu. –

+0

Tại sao nó không phải là tĩnh? 'QDir :: tồn tại (" absolutepath ")' và 'QDir :: mkdir (" "absolutepath") ' – yalov

+0

@yalov - vì nó sẽ va chạm với' QDir :: mkdir ("relative_path") không tĩnh '. Không thể –

-5

Tại sao sử dụng bất cứ điều gì khác?

mkdir(...); 
+19

tính di động (một phần của toàn bộ điểm Qt) –

103

Để cả hai kiểm tra nếu nó tồn tại và tạo nếu không, trong đó có trung gian:

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

Khi bạn sử dụng QDir.mkpath() nó trả về true nếu đường dẫn đã tồn tại, trong Mặt khác QDir.mkdir() trả về false nếu đường dẫn đã tồn tại. Vì vậy, tùy thuộc vào chương trình của bạn, bạn phải chọn phù hợp tốt hơn.

Bạn có thể xem chi tiết trên Qt Documentation

0

Nếu bạn cần một thư mục trống bạn có thể lặp cho đến khi bạn nhận được một thư mục trống

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

trường hợp này bạn sẽ nhận được một tên thư mục với một số.

Các vấn đề liên quan