• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

C# UnauthorisedAccessException. HELP!

micerec

Green Team
29.11.2019
38
1
Здравствуйте! Мне надо написать программу, которая идет по каталогам/подкаталогам и ищет файлы по шаблону, например, .dll. Когда я запускаю код, мне пишут, что UnauthorisedAccessException. как с этим бороться? catch (UnauthorisedAccessException) {} не работает. Вот Код:
C#:
using System;
using System.IO;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            string catalog = "C:\\";
            string fileName = "*.dll";
            foreach (string findedFile in Directory.EnumerateFiles(catalog, fileName, SearchOption.AllDirectories))
            {
                FileInfo FI;
                    try
                    {
                        //по полному пути к файлу создаём объект класса FileInfo
                        FI = new FileInfo(findedFile);
                        //найденный результат выводим в консоль (имя, путь, размер, дата создания файла)
                        Console.WriteLine(FI.Name + " " + FI.FullName + " " + FI.Length + "_байт" + " Создан: " + FI.CreationTime);
                    }
                    catch (UnauthorizedAccessException) //слишком длинное имя файла
                    {
                    Console.WriteLine("Access denied!");
                        continue;
                    }
                }
            }
        }
    }

P.s.: решение вроде "на корневой каталог прав нет" не принимается. Нужно чтобы при возникновении этой ошибки файл пропускался и программа шла дальше.
 
Здравствуйте! Мне надо написать программу, которая идет по каталогам/подкаталогам и ищет файлы по шаблону, например, .dll. Когда я запускаю код, мне пишут, что UnauthorisedAccessException. как с этим бороться? catch (UnauthorisedAccessException) {} не работает. Вот Код:
C#:
using System;
using System.IO;

namespace ConsoleApp1
{
    class Program
    {
        static void Main(string[] args)
        {
            string catalog = "C:\\";
            string fileName = "*.dll";
            foreach (string findedFile in Directory.EnumerateFiles(catalog, fileName, SearchOption.AllDirectories))
            {
                FileInfo FI;
                    try
                    {
                        //по полному пути к файлу создаём объект класса FileInfo
                        FI = new FileInfo(findedFile);
                        //найденный результат выводим в консоль (имя, путь, размер, дата создания файла)
                        Console.WriteLine(FI.Name + " " + FI.FullName + " " + FI.Length + "_байт" + " Создан: " + FI.CreationTime);
                    }
                    catch (UnauthorizedAccessException) //слишком длинное имя файла
                    {
                    Console.WriteLine("Access denied!");
                        continue;
                    }
                }
            }
        }
    }

P.s.: решение вроде "на корневой каталог прав нет" не принимается. Нужно чтобы при возникновении этой ошибки файл пропускался и программа шла дальше.
может сам
C#:
FI = new FileInfo(findedFile);
обернуть в try?
 
может там есть такие директории, которые даже из под админки не позволяют читать директорию и файлы и их как-то надо исключить?
 
Да, от админа там тоже не пробиться. Например C:\Documents and бла бла бла

Но и %userprofile%\AppData\Local\Application Data\ тоже недоступен, так что вручную не получится
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab