Обнуляется счетчик в цикле foreach рекурсивной функции - C#
Формулировка задачи:
Вызываю функцию:
Передаю значение count = 0.Функция:
При смене dir переменная count обнуляется. Таким образом, сумма подсчитывается неправильно.Как построить логику, чтобы значение переменной count определялось верно?
private void сlearFs_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) { int amount = 0; amount = AdmFunc.ClearFs(@"...", amount); MessageBox.Show("Всего файлов: " + amount.ToString()); }
public static int ClearFs(string p, int count) { DirectoryInfo mDir = new DirectoryInfo(p); DirectoryInfo[] drs = mDir.GetDirectories(); foreach (DirectoryInfo dir in drs) { FileInfo[] fls = dir.GetFiles(); foreach (FileInfo file in fls) if (file.Name.Contains(...)) { file.Delete(); count++; } ClearFs(dir.FullName, count); } return count; }
Решение задачи: «Обнуляется счетчик в цикле foreach рекурсивной функции»
textual
Листинг программы
public static int ClearFs(string p) { int count=0; DirectoryInfo mDir = new DirectoryInfo(p); DirectoryInfo[] drs = mDir.GetDirectories(); foreach (DirectoryInfo dir in drs) { FileInfo[] fls = dir.GetFiles(); foreach (FileInfo file in fls) if (file.Name.Contains(...)) { file.Delete(); count++; } count+=ClearFs(dir.FullName, count); } return count; }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д