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

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

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

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

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

textual
Листинг программы
  1.       static void Main(string[] args)
  2.       {
  3.          DirectoryInfo root = new DirectoryInfo(@"c:");
  4.          List<DirectoryInfo> directories = new List<DirectoryInfo>();
  5.          List<FileInfo> files = new List<FileInfo>();
  6.          int errorCount = 0;
  7.          Foo(root);
  8.          Console.WriteLine($"отказов в доступе: {errorCount}");
  9.  
  10.          void Foo(DirectoryInfo dir)
  11.          {
  12.             directories.Add(dir);
  13.             Console.WriteLine(dir.Name);
  14.             try
  15.             {
  16.                foreach(DirectoryInfo item in dir.EnumerateDirectories())
  17.                {
  18.                   Foo(item);
  19.                }
  20.                files.AddRange(dir.EnumerateFiles());
  21.             }
  22.             catch(Exception e)
  23.             {
  24.                ++errorCount;
  25.             }
  26.          }
  27.       }

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


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

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

12   голосов , оценка 3.917 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы