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