【发布时间】:2011-09-08 12:48:02
【问题描述】:
我在这里是新的节点.. :) 我想出了这个算法,但它只显示父节点的列表.. 像这样..
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);
}
【问题讨论】:
标签: c# .net winforms treeview directory-structure