Como limitar a profundidade de uma pesquisa de subdiretório recursiva
Atualmente, tenho uma função que agarra todas as pastas e subpastas para verificar as ACLs em busca de uma pequena ferramenta que estou construindo, mas estou arrancando os cabelos tentando descobrir como limitar a profundidade que ela pode ter. Por exemplo, você tem uma pasta com 4 níveis de profundidade, mas eu quero poder pegar apenas 3 níveis para ACLs.
Atualmente, eu tenho o código assim:
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);
}
}
Obviamente, isso não é tão bom como foi porque estou trabalhando no problema há algum tempo, mas se alguém puder me apontar na direção certa para resolver esse problema, eu ficaria muito feliz!