24
मैं नोड्स यहाँ के साथ नए .. हूँ :) मैं इस एल्गोरिथ्म के साथ आया था लेकिन यह केवल इस तरह .. माता पिता नोड्स की सूची दिखाता है ..आबाद TreeView
a
a.txt
b
c
c
m
n
b
o
p
etc...
मैं चाहता हूँ अगले नोड पिछले नोड .. अंदर नोड में से एक में डाल दिया जाएगा, ताकि इसे इस तरह ऊपर आ जाएगा ..
a
a.txt
b
o
p
c
m
n
etc...
मैं मन में कुछ विचार है, लेकिन मैं कोड के लिए इसे लागू कर सकते हैं। :) :) कृपया कोई मदद करें ..
private void ListDirectory(TreeView treeView, String path)
{
Stack<string> stack = new Stack<string>();
TreeNode DirFilesCollection = new TreeNode();
stack.Push(path);
while (stack.Count > 0)
{
string dir = stack.Pop();
try
{
List<String> parentDir = new List<string>();
parentDir.AddRange(Directory.GetFiles(dir, "*.*"));
parentDir.AddRange(Directory.GetDirectories(dir));
DirectoryInfo d = new DirectoryInfo(dir);
TreeNode TParent = new TreeNode(d.Name);
foreach (String s in parentDir)
{
FileInfo f = new FileInfo(s);
TreeNode subItems = new TreeNode(f.Name);
TParent.Nodes.Add(subItems);
}
DirFilesCollection.Nodes.Add(TParent);
foreach (string dn in Directory.GetDirectories(dir))
{
stack.Push(dn);
}
}
catch
{}
}
Action clearTreeView =() => treeView.Nodes.Clear();
this.Invoke(clearTreeView);
Action showTreeView =() => treeView.Nodes.Add(DirFilesCollection);
this.Invoke(showTreeView);
}
@vrynxzent - अगर आप रुचि रखते हैं, इस सवाल का जवाब अद्यतन गैर-पुनरावर्ती दृष्टिकोण के साथ भी। –
आह .. मैं देखता हूं .. मैं थ्रेडिंग के कारण गैर-रिकर्सिव का उपयोग करना पसंद करता हूं और पकड़ने की कोशिश करता हूं .. मैं इसे रिकर्सिव विधि में भी कर सकता हूं लेकिन मुझे फ़ाइल और निर्देशिका लाने के दौरान डेटा अपडेट करने वाले फॉर्म को देखना होगा .. –
मैंने दोनों रिकर्सिव और पुनरावृत्त कार्यों का उपयोग किया और यह मेरा कोड है, लेकिन शिकायतकर्ता एक त्रुटि देता है: ** पथ 'ई: \ सिस्टम वॉल्यूम सूचना \' तक पहुंच अस्वीकार कर दी गई है। **; यह मेरा कोड है: ** ListDirectory (treeView1, @ "E: \"); ** –