Необходимо найти все файлы на диске. Есть такой код:
System.IO.DirectoryInfo number = new System.IO.DirectoryInfo(@"D:\");
int count = number.GetFiles().Length;
Ищет, но не ищет во всех папках. Пробовал так:
System.IO.DirectoryInfo number = new System.IO.DirectoryInfo(@"D:\");
int count = number.GetFiles(".", SearchOption.AllDirectories).Length;
Ответ
SearchOption.AllDirectories будет ронять весь поиск, если к одному из подкаталогов нет доступа. А учитывая, что ты передаёшь корень диска, там гарантированно попадётся System Volume Information и поиск упадёт. В остальном код работоспособный.
Чтобы правильно обработать каталоги, к которым нет доступа, надо вместо передачи этого флага написать рекурсивную функцию, которая будет сама перебирать каталоги и игнорировать (или каким-либо ещё образом обрабатывать) исключения ошибки доступа.
PS: https://ru.stackoverflow.com/a/419435/178988
http://bbs.vbstreets.ru/viewtopic.php?f=2&t=44440
http://www.cyberforum.ru/csharp-beginners/thread957151.html
Комментариев нет:
Отправить комментарий