rutas - ¿Cómo obtengo la ruta de datos de la aplicación en Windows usando C++?
manejo de archivos en c++ fstream (3)
Solo para complementar la respuesta de interjay.
Tuve que incluir
shlobj.h
para usarSHGetFolderPath
.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.
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?
También puedes leer el valor del registro.
ruta = HKEY_LOCAL_MACHINE / SOFTWARE / Microsoft / Windows / CurrentVersion / Explorer / Shell Carpetas
key = Common AppData
Utilice SHGetFolderPath
con CSIDL_COMMON_APPDATA
como CSIDL.
TCHAR szPath[MAX_PATH];
if (SUCCEEDED(SHGetFolderPath(NULL, CSIDL_COMMON_APPDATA, NULL, 0, szPath)))
{
//....
}