我正在寻找在Windows机器中放置应用程序设置的可接受起点。我有多个申请。出于个人原因,我不想使用注册表:我更喜欢纯文本初始化文件(.ini)。我也不想将文件保存在与可执行文件相同的目录中,理想情况允许我将它们保存在允许用户或系统管理员编写的通用位置。
是的,我不是Windows用户,我的第一个猜测是$HOME/.my_company_name
和/etc/my_company_name
,但是在概念上是否与Windows中的这些地方相同?
只是查看SET
输出并猜测:
%APPDATA% %HOMEDRIVE%%HOMEPATH%\Local Settings %SYSTEMROOT%
顺便说一句:我仍然必须检查这些变量是否仍然存在于Windows服务中......
答案 0 :(得分:4)
我认为AppData就是你想要的。
您可以使用SHGetFolderPath(来自SHFOLDER.DLL)以编程方式获取此内容。
来自MSDN 'Data and Settings Management'(请参阅第4.2节“正确分类和存储应用程序数据”):
TCHAR szAppData[MAX_PATH];
…
hr = SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, 0, szAppData);
使用PathAppend将[company name]\[product name]\[version]
附加到szAppData:
PathAppend(szAppData, "Company\Product\1.0\File.ini")
非用户特定数据也有CSIDL_COMMON_APPDATA
,非漫游数据有CSIDL_LOCAL_APPDATA
(用户登录到其他计算机时不应通过网络复制的数据)。