Ich habe eine Funktion, die derzeit alle Ordner und Unterordner erfasst, um die ACLs für ein kleines Tool zu überprüfen, das ich baue, aber ich ziehe mir die Haare aus versuchen herauszufinden, wie man die Tiefe begrenzen kann, zu der es gehen kann. Zum Beispiel haben Sie einen Ordner, der 4 Ebenen tief geht, aber ich möchte in der Lage sein, nur 3 Ebenen davon für ACLs zu greifen.Wie man die Tiefe einer rekursiven Unterverzeichnis Suche eingrenzt
Zur Zeit habe ich es codiert thusly:
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);
}
}
Ganz offensichtlich ist das nicht so schön wie es war, weil ich habe das Problem für eine Weile arbeiten, aber wenn jemand kann mich in der richtigen Richtung zu löse dieses Problem Ich würde mich sehr freuen!
Was ist für Sie nicht funktioniert? Sieht so aus, als würde dieser Code nicht kompiliert - wo ist recCount deklariert (und pBar und Depth)? und Ihre (auskommentierte) MessageBox.Show verwendet stattdessen den Zähler .... –