将用户数据文件与Windows用户的桌面设置一起放置在哪里?

时间:2015-06-24 02:26:56

标签: c++ windows winapi windows-shell

我需要将在登录的交互式用户帐户下运行的流程中的一些数据放入持久存储中。有问题的信息涉及用户的桌面,屏幕保护程序,主题和其他与桌面相关的设置(与我的应用程序相关)。我知道我可以将此数据作为二进制密钥放在HKEY_CURRENT_USER注册表项中,但是这个数据文件可能有点大,我在某处读到最好不要将太多数据放入系统注册表。

所以现在我想我只是将它保存在二进制文件中。问题是如何找到保存此文件的适当位置?我的主要规定是该文件应该“登录”(或roam)以及登录用户的个人资料。

1 个答案:

答案 0 :(得分:3)

通常最好的位置是位于%APPDATA%文件夹下的子文件夹(以您的公司或应用程序命名,因此他们可以使用它来识别它来自哪里)。你可以得到这样的位置:

if(SUCCEEDED(SHGetKnownFolderPath ( FOLDERID_RoamingAppData, KF_FLAG_CREATE,
                                    NULL, &wszPath )))
{
    printf("\nSHGetKnownFolderPath FOLDERID_RoamingAppData = %S\n", wszPath);
}

有关Pat Altimore's blog的更多信息。