2010-08-26 13 views

Antwort

13

Sie können QDir::homePath() verwenden, um eine QString in das Home-Verzeichnis des Profils des aktuellen Benutzers zu bekommen, aber ich bin nicht sicher, dass es ein "Standard" Download-Verzeichnis durch das Betriebssystem identifiziert.

+0

Ganz einfach: ** keine ** Da * jeder * soll jetzt mit Qt 5 werden, [QStandardPaths] (https:. //doc.qt. io/qt-5/qstandardpaths.html) und [Frank Osterfeld] (https://stackoverflow.com/users/299399/frank-osterfeld) [gelistete Antwort] (https://stackoverflow.com/a/3573367/2809027) sind deine Freunde. Diese Antwort ist jedoch nicht. –

30

In Qt 4 ist QDesktopServices Bereitstellen einige Benutzerpfade:

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

Es hat z.B. Desktop und Dokumente, aber kein spezieller Download-Ordner.

In Qt 5, verwenden QStandardPaths:

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

Es muss darauf hingewiesen werden, dass 'QStandardPaths :: writableLocation()' möglicherweise unsichere "... eine leere Zeichenfolge zurückgibt, wenn der Speicherort nicht bestimmt werden kann." Ebenso kann die Funktion 'QStandardPaths :: standardLocations()', die ebenfalls nicht sicher ist, die leere Liste "... zurückgeben, wenn keine Orte für den Typ definiert sind". In beiden Fällen sollte der Rückgabewert * niemals * als normal angenommen werden. Anrufer sollten * immer * explizit auf Leerheit prüfen. Zu guter Letzt ist zu beachten, dass 'standardLocations()' eine Liste zurückgibt und somit wahrscheinlich einen vernünftigen Wert häufiger zurückgibt als 'writableLocation()', was nur eine einzige Zeichenkette zurückgibt. –

Verwandte Themen