Перебор и сравнение строк - C#
Формулировка задачи:
Доброго времени суток.
Уже долгое время не могу реализовать механизм, который берет строку (первую например) с текстового документа и строку с массива, куда закатываются строки-пути к файлам и папкам в определеннной директории и сравнивает это следующим образом: 0-0, 0-1, 0-2, 0-3 и так далее.
То есть у нас есть цикл 1, который отвечает за перебор строк в текстовике и цикл 2 (который в цикле 1) который перебирает на каждую строчку в текстовике все строки из массива с целью обнаружения сходства строк.
Задача найти сходство и в случае не нахождения выполнить действие (удалить текущую директорию)
Вот как то так.
Проблема то тут то там. То один цикл не считает то другой то индексы не совпадают то просто ничего не работает.
Я только учусь и потратил на эту проблему уже несколько дней, помогите решить вопрос, пожалуйста.
string[] intex = File.ReadAllLines(configFile); //Тянет ссылки из конфиг файла в массив string[] localFolders = Directory.GetFiles(mainFolder, "*.*", SearchOption.AllDirectories); //Тянет пути папок в массив try { for (int i = 0; i < 100; i++) //1 цикл { string b2 = intex[i].Replace(@"C:\PMTEST", @"C:\crossloader"); //Заменяет часть строки. string b4 = b2.Substring(0, intex[i].LastIndexOf('\\')); //Удаляет имя и расширение файла на конце пути (чтобы получить путь к папке) for (int i2 = 0; i2 < 100; i2++) //2 цикл { string b3 = localFolders[i2].Substring(0, localFolders[i2].LastIndexOf('\\')); if (b4 != b3) //Если строка из текстовика не равна строке из массива с путями. { Directory.Delete(b3, true); //Удалить папку goto Finish; //Прерываем цикл 2, выходим на цикл 1 } } Finish:; } } catch { }
Решение задачи: «Перебор и сравнение строк»
textual
Листинг программы
string[] intex = File.ReadAllLines(configFile); //Тянет ссылки из конфиг файла в массив string[] localFolders = Directory.GetFiles(mainFolder, "*.*", SearchOption.AllDirectories); //Тянет пути папок в массив string bb4 = ""; try { for (int i = 0; i < localFolders.Length; i++) { string b3 = localFolders[i].Substring(0, localFolders[i].LastIndexOf('\\')); for (int i2 = 0; i2 < intex.Length; i2++) { string b2 = intex[i2].Replace(@"C:\PMTEST", @"C:\crossloader"); string b4 = b2.Substring(0, intex[i2].LastIndexOf('\\')); if (b4 == b3) { goto Interpo; } bb4 = b4; } Directory.Delete(b3, true); Interpo:; } } catch { } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д