2

我正在寻找在 Windows 机器中放置应用程序设置的可接受起点。我有不止一个应用程序。出于个人原因,我不喜欢使用注册表:我更喜欢纯文本初始化文件 (.ini)。我也不想将文件保存在与可执行文件相同的目录中,理想的情况允许我将它们保存在允许用户或系统管理员编写的通用位置。

对,我不是 Windows 用户,我的第一个猜测是$HOME/.my_company_nameand /etc/my_company_name,但是在概念上是否有与 Windows 中的这些地方等效的东西?

只是查看SET输出并猜测:

%应用程序数据%
%HOMEDRIVE%%HOMEPATH%\本地设置
%系统根%

顺便说一句:我仍然必须检查这些变量是否仍然存在于 Windows 服务中......

4

1 回答 1

4

我认为 AppData 是你想要的。

您可以使用 SHGetFolderPath(来自 SHFOLDER.DLL)以编程方式获取它。

MSDN 的“数据和设置管理”(请参阅​​第 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非漫游数据(当用户登录到另一台机器时不应通过网络复制的数据)。

于 2009-07-10T11:54:57.377 回答