我建立一个产品,涉及建议的文件位置将由所有的Windows用户编辑?
- 在本地计算机上的Windows服务的缓存数据,
- 用户进程读取数据并写入自己的数据,
- 服务又回信说数据到服务器。
我应该在哪里放置这些数据文件,这样它们将被所有用户共享并且可读写?该软件将在公司环境中运行,在这种环境中,桌面有时非常锁定,所以例如某些用户将不具有C:\ Program Files的写权限。
我不认为C:\ Documents and Settings \ All Users \ Application Data \是一个很好的候选人 - 我认为默认情况下只有Admins &高级用户可以在这里写入权限。
我可以使用每个用户的应用程序数据文件夹,但这会有点痛苦,因为不同的人可以使用每台机器......所以如果只有一个共享位置会更简单。
我在C#.net 2005中开发,但这可能不太相关。
您认为在c:\ users \ public \ AppData中使用修改后的ACL有一个文件夹是合理的,这样所有用户都可以读/写,否则这也会让系统管理员感到意外和/或与自动化策略冲突? 我想这将是可能的,但还有很多工作要为每个用户单独存储在其用户AppData文件夹中的缓存,但我真的想尽量避免这种情况。 – Rory 2010-01-20 11:44:33
\ users \ public \ AppData是已经合理预期所有用户都可以读取文件的(唯一)文件夹。因此,我认为这是最合理的地方(至少令人惊讶:P)添加一个文件夹,所有用户都有写入权限。 – 2010-01-20 13:15:07
事实上,我在'Environment.SpecialFolder.CommonApplicationData'内创建了一个子文件夹,并设置了ACL,这样所有用户都可以读/写。这个位置通常在Win7/Win8上是'C:\ ProgramData'(而不是'C:\ users \ public'),在XP上是'C:\ Documents and Settings \ All Users \ Application Data'。 – Rory 2014-11-09 12:55:00