c# - c# 建立目录树
问题描述
我正在尝试在我的应用程序中构建目录树。我正在使用来自. Ext.NET
如何在给定路径中搜索目录和子目录以构建此树?
以下是示例中给出的从节点构建树的代码:
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:\ 为例,您需要将根文件夹放在元素中:
<Root>
<ext:Node NodeID="C:\" Text="C:\"/>
</Root>
推荐阅读
- python - 如何反转熊猫数据框中的字符串?
- python - set_permissions 仅适用于管理员
- google-coral - edgetpu_compiler:如何组合两个 tflite 模型
- python - 有没有办法将某些消息保存为变量供以后使用?(不和谐机器人)
- spring-boot - Kubernetes 和 Spring Boot @Service 负载均衡
- database - 在 MS Access 中查找具有多条记录的 ID 的最近日期
- python - pandas 类别:只保留最常见的并用 NaN 替换 rest
- python-3.x - 如何在数据框的列python3中拆分名称
- algorithm - 将 CSR/CSC 转换为 BSR 的算法复杂度
- sql - Psql - 生成具有运行总数的系列