在WINDOWS中保存程序配置文件的最佳位置是什么?

在WINDOWS中保存程序配置文件的最佳位置是什么?,windows,internet-explorer,windows-vista,add-on,Windows,Internet Explorer,Windows Vista,Add On,我的程序需要在.ini文件中保存一些配置详细信息。这个程序还安装IE和firefox的扩展,我想从这些扩展中读取这些.ini文件。如果我将.ini保留在“…AppData/Roaming…”中,处于保护模式的IE扩展将无法读取/写入。据我所知,只有AppData/LocalLow只能在受保护模式下读取。如果我将所有配置细节移到这个“…AppData/LocalLoe…”上,它会一直工作吗?这是路吗?我写的所有东西都是在Vista环境中,它能与XP一起工作吗?Win7?要获取程序数据的文件夹路径,

我的程序需要在.ini文件中保存一些配置详细信息。这个程序还安装IE和firefox的扩展,我想从这些扩展中读取这些.ini文件。如果我将.ini保留在“…AppData/Roaming…”中,处于保护模式的IE扩展将无法读取/写入。据我所知,只有AppData/LocalLow只能在受保护模式下读取。如果我将所有配置细节移到这个“…AppData/LocalLoe…”上,它会一直工作吗?这是路吗?我写的所有东西都是在Vista环境中,它能与XP一起工作吗?Win7?

要获取程序数据的文件夹路径,应使用WinAPI:

wchar_t path_buf[MAX_PATH];
SHGetFolderPath( NULL, CSIDL_COMMON_APPDATA, NULL, SHGFP_TYPE_CURRENT, &path_buf[0] );

在Windows Vista中,函数SHGetFolderPath被替换为。这个旧函数现在只是SHGetKnownFolderPath的包装器。

请参阅我对这个问题的回答:

引述:

Vista中用户“漫游”文件夹中的文件或XP中的“应用程序数据”随用户移动,因此任何设置和数据都应存储在那里

vista中“Local”和“LocalLow”下的文件以及XP中的“Local Settings”下的文件都没有,因此它是临时文件的好地方,临时文件是与特定计算机或可以重新计算的数据关联的东西

在Vista中,作为我们都知道和喜爱的新安全功能的一部分,您可以让程序在“低完整性模式”(例如,在受保护模式下)下运行,这些程序以较低的权限运行,并且无法访问用户配置文件中的文件-除了“LocalLow”文件夹下的文件

因此,总而言之,存储在“LocalLow”中的文件本质上是不安全的,“Local”/“Local Settings”中的文件在一些大公司中很可能不可用-因此,除非您有充分的理由并确切知道自己在做什么,否则请使用“漫游”/“应用程序数据”

更新:

  • 当使用配置文件漫游(大协作环境)时,Local和LocalLow的内容可以(并且将)在不通知的情况下消失
  • 这些都是每个用户的设置,如果您的服务器在不同于用户的帐户(例如,系统或网络)下运行,它们将获得这些文件夹的不同副本

  • 谢谢你的回复。我的主要应用程序是一个小型web服务器,我们有IE和Firefox的扩展。因此,我们需要保留运行Web服务器的端口。ini和扩展应该能够读取该端口,以便我们能够构建正确的URL。如果我一直处于漫游IE保护模式,我将无法读取它,如果我一直处于LocalLow模式,我将无法找到一个XPCom接口(可编写脚本)来查找LocalLow文件夹路径。我对XPCom一无所知,所以我无法帮你,正如jia3ep所说,获取路径的Win32 API是shGetKnownFoldPath。