Я пытаюсь перебрать все файлы определенного уровня в иерархии папок, более конкретно, во всех подпапках. Прежде чем я сделаю реальные операции с файлами, я также хочу посчитать все файлы, чтобы иметь возможность отображать индикатор выполнения. Это означает, что итерационный метод должен вызываться 2 раза. Это соответствующий код, который я сейчас использую:
Iterate(bool count)
{
foreach (string dir in Directory.GetDirectories(root))
foreach (string subdir in Directory.GetDirectories(dir))
foreach (string file in Directory.GetFiles(subdir))
{
if (count) progressBar.Maximum++;
else
{
//do operations
}
}
}
Мне интересно, есть ли лучший способ сделать это. Конечно, должен быть лучший способ, чем добавление foreach
для каждого уровня папки ..?