Я создаю программу на C#, которая проверяет подписи для всех .exe-файлов и выполняет некоторые другие проверки. Запрос приложения для запуска в качестве администратора с UAC и проверяет его при запуске (мы уверены, что он работает с правами администратора).Программа, выполняемая как admin, не может получить доступ к некоторым путям
Однако, когда я рекурсивно проверяю некоторые пути, у меня есть папки, в которых у меня нет доступа. Например:
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 ». ПК является стандартом Win 7 – lithiium