2010-08-26 15 views

cevap

13

Geçerli kullanıcı profilinin giriş dizinine QString almak için QDir::homePath()'u kullanabilirsiniz, ancak işletim sistemi tarafından tanımlanan bir "standart" indirme dizininin olduğundan emin değilim.

Qt 4,
+0

Oldukça basit: ** hayır ** * herkesin [QStandardPaths], şimdiye kadar Qt 5 kullanarak olmalıdır * (https beri. //doc.qt. io/qt-5/qstandardpaths.html) ve [Frank Osterfeld] (https://stackoverflow.com/users/299399/frank-osterfeld) 'in [erudite yanıtı] (https://stackoverflow.com/a/3573367/2809027) arkadaşlarınız. Ancak bu cevap değil. –

30

, QDesktopServices orada sağlayan bir kullanım yolları:

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

Bu, örneğin var Masaüstü ve Belgeler, ancak belirli İndirilenler klasörü yok.

Qt 5'te, QStandardPaths kullanın:

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

“QStandardPaths :: writableLocation()” öğesi yanlış bir şekilde döndürebileceğine dikkat çekiyor: “konum belirlenemiyorsa boş bir dize”. Aynı şekilde, aynı derecede güvenli olmayan QStandardPaths :: standardLocations() 'işlevi boş bir listeyi" tür için hiçbir konum tanımlanmamışsa "döndürür. Her iki durumda da, dönüş değeri * asla * aklı başında kabul edilmelidir. Arayanlar * her zaman * açıkça boşluk için test etmelidir. Son olarak, standartLocations() 'ın bir liste döndürdüğünü ve dolayısıyla bir tekli değeri, tek bir dize döndüren writableLocation()' dan daha sık döndürme olasılığına sahip olduğunu unutmayın. –