C#建立目录树 [英] c# Build a directory tree
本文介绍了C#建立目录树的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我正在尝试在应用程序中构建目录树。
我正在使用此示例 Ext.NET
。
如何搜索给定路径的目录和子目录以构建此树?
I am trying to build a directory tree in my application.
I am using this Example from Ext.NET
.
How I can search a given path for directories and sub-directories in order to build this tree?
以下是示例中给出的用于构建目录树的代码节点上的树:
Here is the code given in the example to build the tree from nodes:
protected void NodeLoad(object sender, NodeLoadEventArgs e)
{
if (!string.IsNullOrEmpty(e.NodeID))
{
for (int i = 1; i < 6; i++)
{
AsyncTreeNode asyncNode = new AsyncTreeNode();
asyncNode.Text = e.NodeID + i;
asyncNode.NodeID = e.NodeID + i;
e.Nodes.Add(asyncNode);
}
for (int i = 6; i < 11; i++)
{
Ext.Net.TreeNode treeNode = new Ext.Net.TreeNode();
treeNode.Text = e.NodeID + i;
treeNode.NodeID = e.NodeID + i;
treeNode.Leaf = true;
e.Nodes.Add(treeNode);
}
}
}
推荐答案
类似这样的东西:
<script runat="server">
protected void NodeLoad(object sender, NodeLoadEventArgs e)
{
// NodeID stores the local disk path ( full path ) of the selected node to expand
string path = e.NodeID;
if (!string.IsNullOrEmpty(e.NodeID))
{
foreach(var folder in System.IO.Directory.GetDirectories(path))
{
string folderName = new System.IO.DirectoryInfo(folder).Name;
Node folderNode = new Node();
folderNode.Text = folderName;
folderNode.NodeID = folder;
e.Nodes.Add(folderNode);
}
foreach(var fileLeaf in System.IO.Directory.GetFiles(path))
{
Node treeNode = new Node();
treeNode.Text = System.IO.Path.GetFileName(fileLeaf);
treeNode.NodeID = fileLeaf;
treeNode.Leaf = true;
e.Nodes.Add(treeNode);
}
}
}
</script>
对我来说,我仅以C:\为例,您需要输入元素中的根文件夹:
For me, I just used C:\ as an example, you'll need to put your root folder in the element:
<Root>
<ext:Node NodeID="C:\" Text="C:\"/>
</Root>
这篇关于C#建立目录树的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文