Реализовать перебор поддиректорий через рекурсию - C#
Формулировка задачи:
Необходимо реализовать перебор поддиректорий через рекурсию
Выводит только с первой папки:
Как исправить?
private void ListOfCatalogs(string url, int i, DirectoryInfo dir)
{
if(i<dir.GetDirectories().Length)
{
var item = dir.GetDirectories()[i].Name;
Console.WriteLine(item);
if ((new DirectoryInfo(url + '\\' + item)).Exists)
{
url += '\\' + item;
DirectoryInfo di = new DirectoryInfo(url);
int t = 0;
ListOfCatalogs(url, t++, di);
}
ListOfCatalogs(url, ++i, dir);
}
}Решение задачи: «Реализовать перебор поддиректорий через рекурсию»
textual
Листинг программы
private IEnumerable<DirectoryInfo> ListOfCatalogs(DirectoryInfo dir)
{
yield return dir;
foreach (var subDir in dir.EnumerateDirectories())
foreach (var child in ListOfCatalogs(subDir))
yield return child;
}