2010-08-26 12 views

Respuesta

13

Puede usar QDir::homePath() para obtener un QString en el directorio de inicio del perfil del usuario actual, pero no estoy seguro de que exista un directorio de descarga "estándar" identificado por el sistema operativo.

+0

En pocas palabras: ** NO ** * Desde todo el mundo * debe utilizar Qt 5 por ahora, [QStandardPaths] (https:. //doc.qt. io/qt-5/qstandardpaths.html) y [Frank Osterfeld] (https://stackoverflow.com/users/299399/frank-osterfeld) 's [respuesta erudita] (https://stackoverflow.com/a/3573367/2809027) son tus amigos. Esta respuesta, sin embargo, no lo es. –

30

En Qt 4, se QDesktopServices proporcionar algunos rutas de usuario:

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

Tiene por ejemplo Escritorio y documentos, pero no hay una carpeta de descargas específica.

En Qt 5, utilice QStandardPaths:

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

Cabe señalar que 'QStandardPaths :: writableLocation()' puede devolver inseguramente "... una cadena vacía si no se puede determinar la ubicación". Del mismo modo, la función 'QStandardPaths :: standardLocations()' igualmente insegura puede devolver la lista vacía "... si no se definen ubicaciones para el tipo". En cualquier caso, el valor de retorno * * debe ser considerado como cuerdo. Las personas que llaman deben * siempre * probar explícitamente el vacío. Por último, tenga en cuenta que 'standardLocations()' devuelve una lista y, por lo tanto, es probable que devuelva un valor razonable con más frecuencia que 'writableLocation()', que solo devuelve una sola cadena. –

Cuestiones relacionadas