Необходимо найти все файлы на диске. Есть такой код:
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
Раньше пробовала реализовать рекурсивный поиск в папке; может быть, кусочек моего кода Вам пригодится.
private string directoryPath = @"D:\Папка";
/* Обработчик нажатия на кнопку "Сканировать". */
private void btnScan_Click(object sender, EventArgs e)
{
string mask = "*.sln"; // например, можно любую другую
DirectoryInfo root = new DirectoryInfo(directoryPath);
try
{
// Ищем файлы в корневой директории.
getFiles(root);
// Рекурсивный поиск по поддиректориям.
getChildDirectories(root);
}
catch (Exception ex)
{
// ...
}
}
private void getChildDirectories(DirectoryInfo rootDirectory)
{
foreach (DirectoryInfo directory in rootDirectory.GetDirectories())
{
try
{
getFiles(directory);
getChildDirectories(directory);
}
catch (Exception ex)
{
// ...
}
}
}
private void getFiles(DirectoryInfo directory)
{
var files = Directory.EnumerateFiles(directory.FullName, mask, SearchOption.TopDirectoryOnly);
foreach (var file in files)
{
// делаешь что-то хорошее с каждым найденным файлом.
}
}
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости