1

我的程序需要将一些配置详细信息保存在 .ini 文件中。该程序还安装了 IE 和 firefox 的扩展,我也想从这些扩展中读取这些 .ini 文件。如果我将 .ini 保留在“...AppData/Roaming...”中,则处于保护模式的 IE 扩展将无法读取/写入。据我所知,只有 AppData/LocalLow 只能在保护模式下读取。如果我将所有配置详细信息移至此“...AppData/LocalLoe ...”,它会一直有效吗?这是标准的方式吗?我写的一切都是在 Vista 环境中,它可以与 XP 一起使用吗?赢7?

4

2 回答 2

0

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

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

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

于 2009-07-20T07:14:23.710 回答
0

请参阅我对这个问题的回答:如何决定在哪里存储每个用户的状态?注册表?应用程序数据?隔离存储?

从那里引用:

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

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

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

因此,总而言之,存储在“LocalLow”中的文件本质上是不安全的,并且“Local”/“Local Settings”中的文件可能在某些大公司中不可用 - 所以除非你有充分的理由并且确切地知道你在做什么“漫游”/“应用程序数据”。

更新:

  1. 当使用配置文件漫游(大型合作环境)时,Local 和 LocalLow 的内容可以(并且将会)消失,恕不另行通知。
  2. 这些都是每个用户的设置,如果您的服务器在与用户不同的帐户下运行(例如,系统或网络),他们将获得这些文件夹的不同副本。
于 2009-07-20T07:19:45.603 回答