Microsoft是否有关于在不同Windows平台上存储App Data与用户数据的最佳实践文档?

Rob*_*ves 18 windows appdata user-data

在创建将定位到许多Windows版本的应用程序时,确定应存储应用程序特定数据的位置的最佳做法是什么.特别:

  • 特定应用数据(例如应用配置数据)
  • 用户特定数据/设置

我知道在Windows Vista上有一些环境变量,比如%APPDATA%,可以使用,但是Windows 7,Windows XP,Windows 98呢.

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

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

感谢Pax和Remus两位伟大的答案.我也找到了这个项目(特定于XP):

如何使用Visual C++编写将用户和应用程序数据存储在正确位置的Windows XP应用程序

pax*_*blo 8

有一个很好的描述这里的各种CSIDL值和文件夹,它们是指(包括其描述应该有希望告诉你,你需要知道什么)的.

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

请注意,从Vista开始,该方法已经发生了一些变化.它现在用来KNOWNFOLDERID代替,CSIDL而且功能也发生了变化.看到这里.

您仍然可以使用较旧的功能(目前),因为我相信它们现在只是围绕新功能的包装.在未来的某个时刻,这可能会改变.


Rem*_*anu 8

这些通常在Windows软件徽标计划(链接已损坏)中进行了描述.该链接指向Windows 7徽标要求文档,但XP,Windows 2003,Vista和Windows 2008中存在类似文档.在"技术要求"部分,您将找到一些您正在寻找的信息:

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

必须存储特定用户专用且不与计算机的其他用户共享的所有应用程序数据 Users\<username>\AppData

在"每台机器"安装中,用户数据必须在首次运行时写入,而不是在安装期间写入.这是因为在安装时没有正确的用户位置来存储数据.

编辑:

Windows 10用户,查找Windows桌面应用程序认证要求(第10节)