Как обработать исключение? - 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; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д