Как задать глубину просмотра подпапок при поиске файлов? - C#
Формулировка задачи:
Друзья,
нигде не могу найти алгоритм поиска файлов с заданной глубиной. Задача - реализовать поиск определенных файлов в определенной папке. Программа может итерационно, на произвольную глубину сканировать все папки, вложенные в папку поиска.
На всю глубину с рекурсией без проблем делается, а если мы хотим например углубляться в поиске не более чем на 2 уровня вложенности? А не на всю глубину.
Решение задачи: «Как задать глубину просмотра подпапок при поиске файлов?»
textual
Листинг программы
private static void recoursesearch(string searchpath, string mask, uint depth, uint count)
{
try
{
foreach (string dir in Directory.GetDirectories(searchpath))
{
//Console.WriteLine("-----------------" + dir + "-----------------");
try
{
foreach (string s in Directory.GetFiles(dir,mask))
{
Console.WriteLine(Path.GetFileName(s));
//File.Copy(s, Path.Combine(Environment.CurrentDirectory, "Copied_files", Path.GetFileName(s)));
}
}
catch (Exception Error)
{
Console.WriteLine(Error.Message);
}
/// depth — глубина поиска. 0 — поиск только в текущем каталоге
/// count — итерация поиска
if (depth == count) return;
//Рекурсия
recoursesearch(dir, mask, depth, ++count);
}
}
catch (Exception Error)
{
Console.WriteLine(Error.Message);
}
}