【发布时间】:2014-11-26 15:24:50
【问题描述】:
我正在创建一个 C# 程序来检查所有 .exe 文件的签名并进行一些其他检查。应用程序请求以管理员身份使用 UAC 运行,并在启动时对其进行检查(我们确定以管理员权限运行)。
但是,当我递归检查某些路径时,我得到了我无权访问的文件夹。例如:
DirectoryInfo dir = new DirectoryInfo(System.Environment.GetFolderPath(System.Environment.SpecialFolder.CommonApplicationData));
FileInfo[] files = dir.GetFiles("*.exe", SearchOption.AllDirectories);
正在投掷:
System.UnauthorizedAccessException: Access to the path 'C:\ProgramData\Application Data' is denied.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileSystemEnumerableIterator`1.AddSearchableDirsToStack(SearchData localSearchData)
at System.IO.FileSystemEnumerableIterator`1.MoveNext()
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.IO.DirectoryInfo.InternalGetFiles(String searchPattern, SearchOption searchOption)
at "the lines above"
有没有办法访问这些路径?万一这不可能,GetFiles 跳过这些路径而不停止的方法也非常感谢。
【问题讨论】:
-
你能给我一个文件夹的例子吗?我想看看这个文件夹的权限。
-
C:\ProgramData\Application Data在异常消息中 -
它在异常中,例如'C:\ProgramData\Application Data'。 PC是标准的Win 7
-
在此站点中搜索
[c#] System.UnauthorizedAccessException。这个问题已经在这里被问过(并回答过)很多次了。 -
我的意思是使用 Directory.GetAccessControl 方法返回目录的 Windows 访问控制列表 (ACL)。 msdn.microsoft.com/en-us/library/…
标签: c# .net winapi unauthorizedaccessexcepti