看起来这个问题以前曾经有过一千次的问题,但是我找不到一个实际上指向所有用户通用和可写的path的答案。
在任何情况下 – 在我的应用程序中,用户可以下载一些相当大的数据文件,这些文件在下载后需要被应用程序访问。 该应用程序用于多用户环境,所以我不想为每个用户存储下载文件的副本。
到目前为止,我一直在使用CommonApplicationData
( C:\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确实是存储这些数据的正确位置,除非用户能够将它们看作文档来双击。
当您创建文件夹(或其中的单个文件或子文件夹)时,应根据您的需要设置权限。
为了提供更好的跨用户安全性,另一种方法是安装系统服务,以代表用户下载和安装这些文件。