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

是的,我不是Windows用户,我的第一个猜测是 $HOME/.my_company_name/etc/my_company_name, ,但是从概念上等同于Windows中的这些地方?

只是看着 SET 输出和猜测:

%APPDATA%
%HOMEDRIVE%%HOMEPATH%\Local Settings
%SYSTEMROOT%

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

有帮助吗?

解决方案

我认为AppData就是您想要的。

您可以使用ShgetFolderPath(来自Shfolder.dll)以编程方式获取此。

MSDN“数据和设置管理” (请参阅第4.2节“正确分类和存储应用程序数据”):

TCHAR szAppData[MAX_PATH];
…
hr = SHGetFolderPath(NULL, CSIDL_APPDATA, NULL, 0, szAppData);

附加 [company name]\[product name]\[version] 使用SZAPPDATA PathAppend:

PathAppend(szAppData, "Company\Product\1.0\File.ini")

也有 CSIDL_COMMON_APPDATA 对于非用户特定数据和 CSIDL_LOCAL_APPDATA 对于非漫游数据(用户登录到另一台计算机时不应在网络上复制的数据)。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top