Реализовать перебор поддиректорий через рекурсию - 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; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д