Trong Qt, làm thế nào để kiểm tra xem một thư mục đã tồn tại trong thư mục hiện tại?
Nếu nó không tồn tại, làm cách nào để tạo một thư mục trống?Kiểm tra xem một thư mục có tồn tại (và tạo thư mục) trong Qt, C++
Trả lời
Để 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");
Tại sao sử dụng bất cứ điều gì khác?
mkdir(...);
tính di động (một phần của toàn bộ điểm Qt) –
Để 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(".");
}
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
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â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. –
Tại sao nó không phải là tĩnh? 'QDir :: tồn tại (" absolutepath ")' và 'QDir :: mkdir (" "absolutepath") ' – yalov
@yalov - vì nó sẽ va chạm với' QDir :: mkdir ("relative_path") không tĩnh '. Không thể –