Как обработать исключение? - C# (177416)

Узнай цену своей работы

Формулировка задачи:

Здравствуйте.
DirectoryInfo dir = new DirectoryInfo(@"С:");
foreach (var item in dir.GetDirectories())
{
    Console.WriteLine(item.Name);
    foreach (var it in item.GetDirectories("*", SearchOption.AllDirectories))
    {
        Console.WriteLine(" " + it);
    }
    Console.WriteLine();
}
Если для доступа к папке требуются права, то вылетает исключение, и поиск директорий прекращается. Как это исправить? (Возможно можно как нибудь пропустить такие директории?) Заранее благодарен за помощь!

Решение задачи: «Как обработать исключение?»

textual
Листинг программы
      static void Main(string[] args)
      {
         DirectoryInfo root = new DirectoryInfo(@"c:");
         List<DirectoryInfo> directories = new List<DirectoryInfo>();
         List<FileInfo> files = new List<FileInfo>();
         int errorCount = 0;
         Foo(root);
         Console.WriteLine($"отказов в доступе: {errorCount}");
 
         void Foo(DirectoryInfo dir)
         {
            directories.Add(dir);
            Console.WriteLine(dir.Name);
            try
            {
               foreach(DirectoryInfo item in dir.EnumerateDirectories())
               {
                  Foo(item);
               }
               files.AddRange(dir.EnumerateFiles());
            }
            catch(Exception e)
            {
               ++errorCount;
            }
         }
      }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.917 из 5
Похожие ответы