Как ограничить глубину рекурсивного поиска в подкаталоге

У меня есть функция, которая в настоящее время захватывает все папки и подпапки, чтобы проверить ACL на предмет небольшого инструмента, который я строю, но я вытаскиваю свои волосы, пытаясь понять, как ограничить глубину, на которую он может пойти. Например, у вас есть папка с 4 уровнями глубины, но я хочу иметь возможность получить только 3 уровня для ACL.

В настоящее время у меня это закодировано так:

private void StepThroughDirectories(string dir)
{
    string[] directories = Directory.GetDirectories(dir);
    try
    {
        foreach (string d in Directory.GetDirectories(dir))
        {
            if (recCount < (int)Depth)
            {
                GetACLs(d, new DirectoryInfo(d));
                pBar.Value += 1;
                //MessageBox.Show("Recursive Level: " + counter.ToString());
                recCount++;
                StepThroughDirectories(d);
            }
            else
            {
                recCount--;
            }
        }
    }
    catch (System.Exception e)
    {
        Console.WriteLine(e.Message);
    }
}

Очевидно, что это не так хорошо, как это было, потому что я немного поработал над этой проблемой, но если кто-нибудь может указать мне правильное направление для решения этой проблемы, я был бы очень рад!

Ответы на вопрос(3)

Ваш ответ на вопрос