#c# #visual-studio-2013 #manifest #execution
#c# #visual-studio-2013 #манифест #выполнение
Вопрос:
У меня возникли некоторые проблемы с моим приложением, из-за которых требуется доступ к каталогу «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. Вероятно, это не ваша проблема, но
@"C:\"
это C: \ не C:2. Щелкните правой кнопкой мыши ярлык visual Studio и выберите запуск от имени администратора
3. Спасибо! Я тоже пробовал это, но не сработало, возникает та же ошибка.
Ответ №1:
При попытке сделать это возникает исключение несанкционированного доступа.
То, что вы администратор, не означает, что у вас есть доступ ко всему. Я никогда не использовал это раньше, но в руководстве сказано, что SearchOption.AllDirectories
делает это:
Включает текущий каталог и все его подкаталоги в операцию поиска. Этот параметр включает в себя точки повторной проверки, такие как подключенные диски и символические ссылки в поиске.
Итак, это рекурсивный поиск на диске C. Это означает, что он попытается проникнуть в такие вещи, System Volume Information
к которым у обычного администратора не будет доступа.
Если не считать самостоятельной настройки (и изменения списков управления доступом в важных системных папках), я не верю, что в Windows есть участник безопасности, который имеет гарантированный доступ ко всему на диске C. Вам следует попробовать выполнить повторный просмотр файлов и папок самостоятельно и игнорировать папки, в которые вы не можете попасть.