我需要将我在已登录交互式用户帐户下运行的进程中的一些数据放入持久存储中。有问题的信息涉及用户的桌面、屏幕保护程序、主题和其他与桌面相关的设置(与我的应用程序相关)。我知道我可以将此数据作为二进制 key 放在 HKEY_CURRENT_USER 中。注册表项,但是这个数据文件可能有点大,我在某处读到最好不要将太多数据放入系统注册表。
所以现在我想我会把它保存在一个二进制文件中。问题是如何找到合适的位置来保存这个文件?我的主要规定是此文件应与登录用户的个人资料一起“旅行”(或漫游
)。
最佳答案
通常最好的位置是位于 %APPDATA%
文件夹下的子文件夹(以您的公司或应用程序命名,以便他们使用可以识别它的来源)。你可以这样得到它的位置:
if(SUCCEEDED(SHGetKnownFolderPath ( FOLDERID_RoamingAppData, KF_FLAG_CREATE,
NULL, &wszPath )))
{
printf("\nSHGetKnownFolderPath FOLDERID_RoamingAppData = %S\n", wszPath);
}
有关 Pat Altimore's blog 的更多信息.
关于c++ - 在哪里放置要与 Windows 用户的桌面设置一起漫游的用户数据文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31016591/