[英]How do I get the application data path in Windows using C++?
我查看了整个互联网,似乎没有找到合适的解决方案。 我希望能够在 C++ 中以编程方式获取资源管理器可以转换为真实路径的路径“%ALLUSERSPROFILE%\\Application Data”。
我可以在不依赖第三方代码的情况下做到这一点吗?
使用带有CSIDL_COMMON_APPDATA
SHGetFolderPath
作为 CSIDL。
TCHAR szPath[MAX_PATH];
if (SUCCEEDED(SHGetFolderPath(NULL, CSIDL_COMMON_APPDATA, NULL, 0, szPath)))
{
//....
}
只是为了补充 interjay 的回答
我必须包含shlobj.h
才能使用SHGetFolderPath
。
通常您可能需要从 appdata 读取文件,为此您需要使用pathAppend
函数( shlwapi.h
需要shlwapi.h
)。
#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\\") );
}
请参阅此处了解更多详情。
您还可以从注册表中读取值
路径 = HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders
键 =通用应用数据
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.