Обнуляется счетчик в цикле foreach рекурсивной функции - C#

Узнай цену своей работы

Формулировка задачи:

Вызываю функцию: Передаю значение count = 0.
Листинг программы
  1. private void сlearFs_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)
  2. {
  3. int amount = 0;
  4. amount = AdmFunc.ClearFs(@"...", amount);
  5. MessageBox.Show("Всего файлов: " + amount.ToString());
  6. }
Функция: При смене dir переменная count обнуляется. Таким образом, сумма подсчитывается неправильно.
Листинг программы
  1. public static int ClearFs(string p, int count)
  2. {
  3. DirectoryInfo mDir = new DirectoryInfo(p);
  4. DirectoryInfo[] drs = mDir.GetDirectories();
  5. foreach (DirectoryInfo dir in drs)
  6. {
  7. FileInfo[] fls = dir.GetFiles();
  8. foreach (FileInfo file in fls)
  9. if (file.Name.Contains(...))
  10. {
  11. file.Delete();
  12. count++;
  13. }
  14. ClearFs(dir.FullName, count);
  15. }
  16. return count;
  17. }
Как построить логику, чтобы значение переменной count определялось верно?

Решение задачи: «Обнуляется счетчик в цикле foreach рекурсивной функции»

textual
Листинг программы
  1.         public static int ClearFs(string p)
  2.         {
  3.             int count=0;
  4.             DirectoryInfo mDir = new DirectoryInfo(p);
  5.             DirectoryInfo[] drs = mDir.GetDirectories();
  6.             foreach (DirectoryInfo dir in drs)
  7.             {
  8.                 FileInfo[] fls = dir.GetFiles();
  9.                 foreach (FileInfo file in fls)
  10.                     if (file.Name.Contains(...))
  11.                     {
  12.                         file.Delete();
  13.                         count++;
  14.                     }
  15.                 count+=ClearFs(dir.FullName, count);
  16.             }
  17.             return count;
  18.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.133 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут