Comment obtenir les chemins système/utilisateur standard dans Qt?Comment obtenir le dossier de téléchargement de l'utilisateur dans Qt?
Ce dont j'ai vraiment besoin, c'est d'obtenir l'emplacement du dossier Téléchargements de l'utilisateur.
Comment obtenir les chemins système/utilisateur standard dans Qt?Comment obtenir le dossier de téléchargement de l'utilisateur dans Qt?
Ce dont j'ai vraiment besoin, c'est d'obtenir l'emplacement du dossier Téléchargements de l'utilisateur.
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.
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);
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. –
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. –