繁体   English   中英

如何使用 C++ 在 Windows 中获取应用程序数据路径?

[英]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 的回答

  1. 我必须包含shlobj.h才能使用SHGetFolderPath

  2. 通常您可能需要从 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM