txt - rutas en c++




¿Cómo obtengo la ruta de datos de la aplicación en Windows usando C++? (2)

Miré por todo el internet y no parece haber una solución decente que pudiera encontrar. Quiero poder programar en C ++ obtener la ruta "% ALLUSERSPROFILE% \ Application Data" que el explorador puede traducir en una ruta real.

¿Puedo hacer esto sin confiar en el código de terceros?


Solo para complementar la respuesta de interjay.

  1. Tuve que incluir shlobj.h para usar SHGetFolderPath .

  2. A menudo es posible que necesite leer un archivo desde appdata, para hacer esto necesita usar la función shlwapi.h ( shlwapi.h es necesario para esto).

#include <shlwapi.h>
#pragma comment(lib,"shlwapi.lib")
#include "shlobj.h"

TCHAR szPath[MAX_PATH];
// Get path for each computer, non-user specific and non-roaming data.
if ( SUCCEEDED( SHGetFolderPath( NULL, CSIDL_COMMON_APPDATA, NULL, 0, szPath ) ) )
{
    // Append product-specific path
    PathAppend( szPath, _T("\\My Company\\My Product\\1.0\\") );
}

Vea here para más detalles.


También puedes leer el valor del registro.

ruta = HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Shell Carpetas

key = Common AppData





application-data