微软是否有关于在不同Windows平台上存储应用程序数据和用户数据的最佳实践文档?

微软是否有关于在不同Windows平台上存储应用程序数据和用户数据的最佳实践文档?,windows,appdata,user-data,Windows,Appdata,User Data,在创建针对多个Windows版本的应用程序时,确定应用程序特定数据存储位置的最佳做法是什么。具体而言: 特定于应用程序的数据(例如,应用程序配置数据) 用户特定数据/设置 例如,我知道在Windows Vista上可以使用环境变量,如%APPDATA%,但Windows 7、Windows XP和Windows 98又如何呢 我的主要问题是,微软是否有一份最佳实践文档,概述了不同类型数据(应用程序与用户)的文件系统位置,以及在读取/写入这些位置时需要牢记的安全含义 我还感兴趣的是,这不仅适用

在创建针对多个Windows版本的应用程序时,确定应用程序特定数据存储位置的最佳做法是什么。具体而言:

  • 特定于应用程序的数据(例如,应用程序配置数据)
  • 用户特定数据/设置
例如,我知道在Windows Vista上可以使用环境变量,如%APPDATA%,但Windows 7、Windows XP和Windows 98又如何呢

我的主要问题是,微软是否有一份最佳实践文档,概述了不同类型数据(应用程序与用户)的文件系统位置,以及在读取/写入这些位置时需要牢记的安全含义

我还感兴趣的是,这不仅适用于.NET应用程序(可以使用ApplicationSettingBase),而且也适用于非托管C/C++应用程序

感谢Pax和Remus两位伟大的回答。 我也发现了这个项目(特定于XP):


对各种CSIDL值及其引用的文件夹有很好的描述(包括一个描述,希望它能告诉您需要了解的内容)

它还包含指向用于检索这些特殊文件夹路径的函数的链接

请注意,从Vista开始,该方法已略有更改。它现在使用的是
KNOWNFOLDERID
,而不是
CSIDL
,功能也发生了变化。看


您仍然可以使用旧函数(目前),因为我相信它们现在只是新函数的包装。在将来的某个时候,这种情况可能会改变。

这些通常在中描述。该链接指向Windows 7徽标要求文档,但XP、Windows 2003、Vista和Windows 2008也有类似的文档。在“技术要求”部分,您将找到一些您要查找的信息:

必须保存的所有应用程序数据 在计算机上的用户之间共享 应存储在
ProgramData

所有应用程序数据仅限于 特定用户,不可共享 与计算机的其他用户必须 贮存在
Users\\AppData

在“每台机器”安装中,用户 数据必须在第一次运行时写入,并且 在安装过程中不会。这是 因为没有正确的用户 发生时存储数据的位置 安装

编辑:

Windows 10用户,请查找