build议的文件位置将由所有的Windows用户编辑?

我正在build立一个涉及的产品

  • 一个Windows服务在本地机器上caching数据,
  • 用户进程读取数据并写入自己的数据,
  • 该服务又将该数据写回服务器。

我应该在哪里放置这些数据文件,这样它们将被所有用户共享,并且是可读写的? 该软件将在公司环境中运行,在这种环境中,桌面有时会非常locking,所以例如某些用户将不具有对C:\ Program Files的写入权限

我不认为C:\文件和设置\所有用户\应用程序数据\是一个很好的候选人 – 我想默认情况下只有pipe理员和高级用户有写权限在这里。

我可以使用每个用户的应用程序数据文件夹,但是这将会有点痛苦,因为不同的人可以使用每台机器…所以如果只有一个共享位置会更简单。

我在C#.net 2005中开发,但这可能不太相关。

不幸的是,你没有真正的选择。 你必须(你真的必须)调用SHGetSpecialFolderLocation来获取路径c:\ users \ public \ AppData(这是你上面链接的文件夹的名称,但在Vista和Windows 7上)然后你必须创建你自己的应用程序文件夹在其中。 然后,您必须使用安全性API修改所创建文件夹的ACL。

系统上没有任何文件夹使用默认ACL,允许多个非管理员用户读取和写入相同的文件。

c:\ users \ public \ AppData是最接近的。 在这里修改应用程序文件夹的ACL似乎是最好的方法。 当然,一旦使用ACL修改,文件夹真的可以在任何地方创建。 但是这可能会给系统管理员带来惊喜,并导致安全漏洞。