有一篇关于此的博客文章:blogs.msdn.com/cjacks/archive/2008/02/05/where-should-i-write-program-data-instead-of-program-files.aspx(我不允许超链接,但必须剪切-n粘贴,直到它被纠正)。
它实际上似乎围绕一个特定的问题:如果你有文件应该是所有用户都可写的,你希望用户发现浏览器中的文件,并能够双击它们,或者你希望这些文件被隐藏,并且只能在应用程序的后台使用。
如果你想要的文件的所有用户在资源管理器中发现的,你可能想将它们放在C:\用户\公用。所有你需要做的就是把它们放在那个位置,并且默认的安全性应该可以工作。
如果你想将文件从用户隐藏,你可能想将它们放在C:\ programdata。在这种情况下,当您创建文件时,默认安全性可能不正确,因此您需要将应用程序ACL设置为文件。或者更好的是可能让你的安装程序在c为您的应用程序的目录结构:\ programdata,并且有安装程序设置好默认的ACL对每个目录 - 那么您的应用程序不必抱歉设置ACL的时候,它实际上创建文件,它只需要在正确的位置创建文件。
在任何情况下,你应该调用适当的Win32(或.Net框架)函数来获取路径到c:\ programdata或C:\用户\ public目录。不要硬编码这些路径在您的应用程序 - 如果你硬编码,你会错过一些情况下用户移动的目录或在某些不常见的方式安装了Windows,而且您的应用将打破。
我将如何修改权限编程?也许与CACLS? IIRC,这需要管理员权限。 – 2009-05-22 15:46:28