我正在创建一个 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 跳过这些路径而不停止的方法也非常感谢。