我的应用程序存在一些问题,必须访问“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();
有人能帮帮我吗?我会非常感激的!
答案 0 :(得分:0)
我尝试这样做时会发生未经授权的访问异常。
仅仅因为您是管理员并不意味着您可以访问所有内容。我以前从未使用它,但手册中说SearchOption.AllDirectories
执行此操作:
在搜索操作中包含当前目录及其所有子目录。此选项包括重新分析点,例如搜索中已安装的驱动器和符号链接。
所以它递归搜索C盘。这意味着它将尝试进入常规管理员无法访问的System Volume Information
之类的内容。
如果没有自己设置(并修改重要系统文件夹上的ACL),我不相信Windows中有一个安全主体可以保证访问C盘上的所有内容。您应该尝试自己递归文件和文件夹,并忽略无法进入的文件夹。