So begrenzen Sie die Tiefe einer rekursiven Unterverzeichnis-Suche

Ich habe eine Funktion, die derzeit alle Ordner und Unterordner abruft, um die ACLs nach einem kleinen Tool zu durchsuchen, das ich gerade erst baue, aber ich ziehe mir die Haare aus, um herauszufinden, wie ich die Tiefe begrenzen kann, in die es gehen kann . Zum Beispiel haben Sie einen Ordner, der 4 Ebenen tief ist, aber ich möchte nur 3 Ebenen davon für ACLs erfassen können.

Zurzeit habe ich es so codiert:

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);
    }
}

Offensichtlich ist das nicht so schön wie es war, weil ich eine Weile an dem Problem gearbeitet habe, aber wenn jemand mich in die richtige Richtung lenken kann, um dieses Problem zu lösen, würde ich mich sehr freuen!

Antworten auf die Frage(6)

Ihre Antwort auf die Frage