2010-08-26 3 views

Répondre

13

Vous pouvez utiliser QDir::homePath() pour obtenir un QString dans le répertoire de base du profil de l'utilisateur actuel, mais je ne suis pas sûr qu'il existe un répertoire de téléchargement «standard» identifié par le système d'exploitation.

+0

Tout simplement: ** pas ** Comme tout le monde * * devrait utiliser Qt 5 maintenant, [QStandardPaths] (https:. //doc.qt. io/qt-5/qstandardpaths.html) et [Frank Osterfeld] (https://stackoverflow.com/users/299399/frank-osterfeld) de [réponse érudite] (https://stackoverflow.com/a/3573367/2809027) sont vos amis. Cette réponse, cependant, ne l'est pas. –

30

Dans Qt 4, on QDesktopServices met en évidence quelques chemins utilisateur:

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

Il a par exemple Bureau et Documents mais pas de dossier Téléchargements spécifique.

Dans Qt 5, utilisez QStandardPaths:

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

Il convient de noter que 'QStandardPaths :: writableLocation()' peut retourner de manière non sûre "... une chaîne vide si l'emplacement ne peut pas être déterminé." De même, la fonction 'QStandardPaths :: standardLocations()', également dangereuse, peut renvoyer la liste vide "... si aucun emplacement n'est défini pour le type". Dans les deux cas, la valeur de retour ne doit * jamais * être considérée comme saine. Les appelants doivent * toujours * tester explicitement la vacuité. Enfin, notez que 'standardLocations()' renvoie une liste et est donc susceptible de renvoyer une valeur saine plus fréquemment que 'writableLocation()', qui ne renvoie qu'une seule chaîne. –

Questions connexes