Wie bekomme ich die Standard-System/Benutzer-Pfade in Qt?Wie bekomme ich den Download-Ordner des Benutzers in Qt?
Was ich wirklich brauche ist, um den Speicherort des Downloads des Benutzers Ordner zu erhalten.
Wie bekomme ich die Standard-System/Benutzer-Pfade in Qt?Wie bekomme ich den Download-Ordner des Benutzers in Qt?
Was ich wirklich brauche ist, um den Speicherort des Downloads des Benutzers Ordner zu erhalten.
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.
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);
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. –
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. –