Ho una funzione che attualmente prende tutte le cartelle e sottocartelle per controllare l'ACL di un piccolo strumento che sto costruendo, ma sto tirando fuori i miei capelli cercando di capire come limitare la profondità a cui può andare. Ad esempio hai una cartella che ha 4 livelli di profondità ma voglio essere in grado di prenderne solo 3 livelli per ACL.Come limitare la profondità di un ricorsivo sottodirectory Ricerca
Attualmente l'ho codificato questa convenzione:
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);
}
}
Ovviamente questo non è bello come è stato perché ho lavorato sul problema per un po ', ma se qualcuno mi può puntare nella giusta direzione per risolvere questo problema sarei molto felice!
ciò che non funziona per voi? Sembra che questo codice non venga compilato - dove è recCount dichiarato (e pBar e Depth)? e il vostro (commentato) MessageBox.Show utilizza contatore invece .... –