具有管理员权限的System.UnauthorizedAccessException

时间:2014-07-05 00:54:43

标签: c# visual-studio-2013 manifest execution

我的应用程序存在一些问题,必须访问“C:\”目录。我尝试这样做时会发生未经授权的访问异常。我已经尝试将app.manifest中的执行级别更改为:

<requestedExecutionLevel level="highestAvailable" />

<requestedExecutionLevel level="requireAdministrator" uiAccess= "true"/>

<requestedExecutionLevel level="requireAdministrator" uiAccess= "false"/>

例外的主要代码是:

List<string> search =
    Directory.GetFiles(@"C:\\", "*.exe*", SearchOption.AllDirectories).ToList();

有人能帮帮我吗?我会非常感激的!

1 个答案:

答案 0 :(得分:0)

  

我尝试这样做时会发生未经授权的访问异常。

仅仅因为您是管理员并不意味着您可以访问所有内容。我以前从未使用它,但手册中说SearchOption.AllDirectories执行此操作:

  

在搜索操作中包含当前目录及其所有子目录。此选项包括重新分析点,例如搜索中已安装的驱动器和符号链接。

所以它递归搜索C盘。这意味着它将尝试进入常规管理员无法访问的System Volume Information之类的内容。

如果没有自己设置(并修改重要系统文件夹上的ACL),我不相信Windows中有一个安全主体可以保证访问C盘上的所有内容。您应该尝试自己递归文件和文件夹,并忽略无法进入的文件夹。