我正在编写桌面应用,需要一个文件夹...
您能建议一个合适的文件夹,还是更好地使用注册表?
答案 0 :(得分:7)
建议的方法是在“ProgramData”下面(即CSIDL_COMMON_APPDATA
/ FOLDERID_ProgramData
)在安装时创建一个专用于您的应用程序的文件夹。
如您所知,CSIDL_COMMON_APPDATA
文件夹仅供标准用户阅读。因此,您的安装程序需要为其创建一个ACL,以便允许您访问所需的文件夹。
这是满足您的要点中列出的所有标准的解决方案。
你提到了注册表。注册表中没有任何区域在所有用户之间共享,但标准用户可以写入。虽然您可以使用ACL来授予对注册表更多的许可访问权限,但实际上并非如此。请忘记我甚至提到了这种可能性!
答案 1 :(得分:2)
如果您的应用是.NET,请使用CommonApplicationData
- 您可以致电GetFolderPath
获取真实位置。
编辑 - 根据评论:
您需要正确设置ACL - 有关如何执行此操作的示例源代码,请参阅http://www.codeproject.com/Tips/61987/Allow-write-modify-access-to-CommonApplicationData
答案 2 :(得分:1)
公共用户目录怎么样?例如:C:\Users\Public\Libraries
或C:\Users\Public\Documents
我在几台Windows 7计算机上发现了这些文件夹。我不确定它是否总是存在,但可能是一种选择。我希望为公共用户提供类似%appdata%
的内容,但我找到的最接近的是Public\Libraries
。
(作为旁注,似乎C:\Users\Public\Desktop
确实需要管理员写信。)
答案 3 :(得分:0)
如何使用%APPDATA%/ Company / Product作为目录?