在Win7上存储可以由多个用户帐户访问和操作的数据文件的好地方是什么?

时间:2010-08-16 09:47:51

标签: windows windows-7

所以我一直在研究一个包含多个部分的系统,例如标准用户模式应用程序,Internet Explorer插件和Windows服务。我需要能够从所有这些可能在不同用户帐户下运行的部分访问和/或操作同一组数据文件。我似乎对存储这些数据的最佳位置感到困惑。

我目前正在使用“所有用户”个人资料下的目录。唯一的问题是,从本地系统帐户下运行的Windows服务调用时,SHFileOperation似乎无法从此目录中删除文件;我找不到文件错误。我意识到SHFileOperation已经被Vista中的IFileOperation取代了,我更新了代码以使用IFileOperation,它确实在这里工作,但我想知道我是否会遇到其他问题。

所以,问题是,在Win7上存储这些数据文件的“更好”的位置是否比“所有用户”配置文件更好?

1 个答案:

答案 0 :(得分:2)

ProgramData是要走的路。在我的(非常默认)Windows 7安装上,它映射到C:\ ProgramData。它不受UAC的保护,所以没有人必须提升才能达到目的。在那里创建一个文件夹,其中包含您的应用程序的名称,然后就可以了。 %ProgramData%将从批处理文件等到达它,你应该能够找到它但是你找到已知的文件夹 - CSIDL_COMMON_APPDATA如果你在本机代码中工作,System.Environment.SpecialFolders在托管代码中 - 如果它不在那个枚举中那么Code Pack就有一个。

对于某些用户来说,如果他们想要查看“我的文档”,但是然后使用AllUsers配置文件也可能会遇到这个问题,那么找到该文件可能会有点困难。