Задать вопрос
@yyakovlev0
я супер

Я делал метод который ищет папку, но он просматривает папки не до конца, как это исправить?

Есть нужная мне папка её путь C:\папка\папка\папка\папка\нужная мне папка
А метод просматривает не до конца то есть выводит C:\папка\папка\папка\папка
public static void Searcher(string path,string pattern)
        {
            var parts = new List<DirectoryInfo> {};
           
            DirectoryInfo di = new DirectoryInfo(path);
            DirectoryInfo[] diarr = di.GetDirectories();
            bool isend = false;
            string mypath;
            foreach (DirectoryInfo d in diarr)
            {
                if (d.ToString().Contains(pattern) == true)
                {
                    Console.WriteLine("НАЙДЕНООООООООООООООООООООООООООООООО путь ||" + d);
                    isend = true;
                    mypath = d.ToString();
                }
                
                try
                {
                    diarr = d.GetDirectories();
                }
                catch { }
                parts.Add(d);
                while (isend == false )
                {
                    foreach (DirectoryInfo dir in diarr)
                    {
                        if (dir.ToString().Contains(pattern) == true)
                        {
                            Console.WriteLine("НАЙДЕНООООООООООООООООООООООООООООООО путь ||" + dir);
                            isend = true;
                            mypath = dir.ToString();
                        }
                        
                        try
                        {
                            diarr = dir.GetDirectories();
                            Console.WriteLine(dir);
                        
                        }
                        catch (Exception) { Console.WriteLine("err"); }
                       
                    }
                    if (diarr.Length == 0)
                    {
                        break;
                    }
                }
                if (isend == true)
                {
                    
                    break;
                }





            }
            
            
        }
  • Вопрос задан
  • 129 просмотров
Подписаться 1 Простой 5 комментариев
Решения вопроса 1
yarosroman
@yarosroman Куратор тега C#
C# the best
Для таких задач придумали рекурсию
функция ПоискПапки(Путь)
   список = СодержимоеПапки(Путь)
   дляКаждогоЗначения(подпуть в список)
         ДобавитьПутьВОбщийСписок(подпуть)
         ПоискПапки(подпуть)
конец


Вот алгоритм, как строится дерево каталогов.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы