在我的应用程序中,我需要将“全局”(即非用户特定)设置存储在已知且可预测的位置。
我希望应用程序能够从任何地方运行(作为标准用户,而不是管理员),包括来自不同位置的多个副本,并且能够读取和写入保存的配置文件。
数据需要为所有标准用户授予读写访问权限,而不仅仅是一个。
考虑到这一点,这里提到的四个选项是不合适的:http: //msdn.microsoft.com/en-us/library/bb206295 (VS.85).aspx#ID0E1BA
那么我的替代方案是什么?
我的应用程序是用 C++ 编写的,仅适用于 Windows。我需要支持 Windows XP 及更高版本。
谢谢。
编辑:
为了澄清,忽略由多个实例引起的竞争条件。这个问题仅与在哪里存储数据有关。我看不到任何合适的地方:
- 可预测的(例如 %APPDATA%\Foo 是一个“可预测的”路径,但不幸的是用户特定的)
- 全局(例如 %PROGRAMDATA%\Foo 是全局路径,但不幸的是只有创建用户具有写入权限)
- 可访问(标准用户需要能够在给定目录中创建新文件,这适用于系统上的所有用户)