मेरे पास एक ऐसा फ़ंक्शन है जो वर्तमान में सभी फ़ोल्डरों और उप-फ़ोल्डरों को पकड़ता है ताकि एसीएल को एक छोटे से टूल के लिए जांच सकें, लेकिन मैं अपने बालों को खींच रहा हूं यह समझने की कोशिश कर रहा है कि गहराई को कैसे सीमित किया जा सकता है। उदाहरण के लिए आपके पास एक फ़ोल्डर है जो 4 स्तरों को गहरा कर देता है लेकिन मैं एसीएल के लिए केवल 3 स्तरों को पकड़ने में सक्षम होना चाहता हूं।एक रिकर्सिव सब-डायरेक्टरी सर्च की गहराई को सीमित करने के लिए कैसे करें
वर्तमान में मैं यह 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);
}
}
जाहिर है कि के रूप में अच्छा के रूप में यह था, क्योंकि मैं थोड़ी देर के लिए, लेकिन किसी को भी सही दिशा में मुझे इंगित कर सकते हैं, तो इस समस्या पर काम कर रहा है नहीं है इस मुद्दे को हल करें मैं बहुत खुश होगा!
क्या आप के लिए काम नहीं कर रहा? ऐसा लगता है कि यह कोड संकलित नहीं करता है - जहां रिकॉउंट घोषित किया गया है (और पीबीआर, और गहराई)? और आपकी (टिप्पणी की गई) MessageBox.Show का उपयोग काउंटर का उपयोग करता है .... –