在以下目录中编写文件时:
C:\ProgramData\Something\Somthingmore
我得到一个UnauthorizedAccesException
。我怎样才能确保我总能写到那里?我的应用程序需要编写loggfiles,(Environment.SpecialFolder
确实是同样的事情。)但我不想在那里写数据,我需要所有用户从文件夹和子文件夹中写入和读取数据。我试图将我的app.manifest修改为:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
但这也无济于事,同时将UAC
设置为最低或最高也没有任何不同。
当我使用Envireoment.SpecialFolder.ApplicationData时,我得到以下异常:
UnauthorizedAccesException
访问路径C:\ Users \ PC2 \ AppData \ Roaming \ AppName \ Logging \ SubFolder被拒绝。
答案 0 :(得分:0)
这些文件夹的默认权限可能很棘手。默认情况下,它们受到限制。在安装过程中要开放安全性(如果有),或者您需要管理员手动配置。
此处的评论中提到了这一点:http://blogs.msdn.com/b/cjacks/archive/2008/02/05/where-should-i-write-program-data-instead-of-program-files.aspx