2010-08-26 13 views

risposta

13

È possibile utilizzare QDir::homePath() per ottenere un QString nella home directory del profilo dell'utente corrente ma non sono sicuro che esista una directory di download "standard" identificata dal sistema operativo.

+0

Molto semplicemente: ** non ** Dal momento che * tutti * dovrebbe usare Qt 5, ormai, [QStandardPaths] (https:. //doc.qt. io/qt-5/qstandardpaths.html) e [Frank Osterfeld] (https://stackoverflow.com/users/299399/frank-osterfeld)'s [risposta erudita] (https://stackoverflow.com/a/3573367/2809027) sono i tuoi amici. Questa risposta, tuttavia, non lo è. –

30

In Qt 4, viene QDesktopServices fornitura di alcuni percorsi utente:

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

Ha esempio Desktop e documenti ma nessuna cartella di download specifica.

In Qt 5, utilizzare QStandardPaths:

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

Sostiene che 'QStandardPaths :: writableLocation()' può restituire in modo ingiusto "... una stringa vuota se la posizione non può essere determinata." Allo stesso modo, la funzione 'QStandardPaths :: standardLocations()' ugualmente non sicura può restituire la lista vuota "... se non sono definite posizioni per tipo". In entrambi i casi, il valore di ritorno dovrebbe * mai * essere considerato ragionevole. I chiamanti dovrebbero * sempre * testare esplicitamente il vuoto. Infine, si noti che 'standardLocations()' restituisce una lista ed è quindi probabile che restituisca un valore sano più frequentemente di 'writableLocation()', che restituisce solo una singola stringa. –

Problemi correlati