Как обработать исключение? - 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;
}
}
}