2010-08-26 41 views

Trả lời

13

Bạn có thể sử dụng QDir::homePath() để nhận QString vào thư mục chính của hồ sơ người dùng hiện tại nhưng tôi không chắc rằng thư mục tải xuống "chuẩn" được hệ điều hành xác định.

+0

Rất đơn giản: ** không ** Kể từ khi tất cả mọi người * * nên sử dụng Qt 5 bởi bây giờ, [QStandardPaths] (https:. //doc.qt. io/qt-5/qstandardpaths.html) và [Frank Osterfeld] (https://stackoverflow.com/users/299399/frank-osterfeld) 'câu trả lời erudite] (https://stackoverflow.com/a/3573367/2809027) là bạn của bạn. Câu trả lời này, tuy nhiên, không phải là. –

30

Trong Qt 4, có QDesktopServices cung cấp một số đường dẫn sử dụng:

https://doc.qt.io/qt-4.8/qdesktopservices.html#StandardLocation-enum

Nó có ví dụ Máy tính để bàn và tài liệu nhưng không có thư mục Tải xuống cụ thể.

Trong Qt 5, sử dụng QStandardPaths:

const QString downloadsFolder = QStandardPaths::writableLocation(QStandardPaths::DownloadLocation); 
+1

Nó lưu ý rằng 'QStandardPaths :: writableLocation()' có thể trả về một cách không an toàn "... một chuỗi trống nếu vị trí không thể xác định được." Tương tự, hàm QStandardPaths :: standardLocations() 'không an toàn như nhau có thể trả về danh sách rỗng" ... nếu không có vị trí nào cho kiểu được xác định. " Trong cả hai trường hợp, giá trị trả về sẽ * không bao giờ * được giả định là sane. Người gọi nên * luôn luôn * kiểm tra một cách rõ ràng cho sự trống rỗng. Cuối cùng, lưu ý rằng 'standardLocations()' trả về một danh sách và do đó có khả năng trả về một giá trị sane thường xuyên hơn 'writableLocation()', mà chỉ trả về một chuỗi đơn. –

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