在Windows XP / Vista / 7/8/10中将常用用户程序数据放在哪里?

看起来这个问题以前曾经有过一千次的问题,但是我找不到一个实际上指向所有用户通用和可写的path的答案。

在任何情况下 – 在我的应用程序中,用户可以下载一些相当大的数据文件,这些文件在下载后需要被应用程序访问。 该应用程序用于多用户环境,所以我不想为每个用户存储下载文件的副本。

到目前为止,我一直在使用CommonApplicationDataC:\ProgramData\[Vendor]\[Application]使用Wix安装C:\ProgramData\[Vendor]\[Application]创build的C:\ProgramData\[Vendor]\[Application] ),但是最近我已经知道这个是只读存储,有几个用户遇到这个问题,因为CommonApplicationData被写保护。

我一直在检查不同的选项,到目前为止我发现的唯一可行的是%public%文件夹( https://blogs.msdn.microsoft.com/cjacks/2008/02/05/where-should-i-写程序数据而不是程序文件/ )。

这是放置文件的最佳/正确的地方,还是有另一种解决scheme吗? 需要在Windows XP / Vista / 7/8/10下工作。

CommonApplicationData确实是存储这些数据的正确位置,除非用户能够将它们看作文档来双击。

当您创建文件夹(或其中的单个文件或子文件夹)时,应根据您的需要设置权限。

为了提供更好的跨用户安全性,另一种方法是安装系统服务,以代表用户下载和安装这些文件。