首页 > 代码库 > C# TreeView 树节点:递归显示整个系统盘符文件目录及文件
C# TreeView 树节点:递归显示整个系统盘符文件目录及文件
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace Demo
{
/// <summary>
/// 有关对于TreeView节点的填充的相关处理类
/// </summary>
class TreeViewUtils
{
#region 有关将整个系统盘符加载到TreeView顶级节点的处理方法
/// <summary>
/// 有关将整个系统盘符加载到TreeView顶级节点的处理方法
/// </summary>
/// <param name="treeView"></param>
public void LoadListListDrivers(TreeView treeView)
{
treeView.Nodes.Clear();
DriveInfo[] drivers = DriveInfo.GetDrives(); //获得整个系统磁盘驱动
//将盘符名加载到TreeView的顶级节点
foreach (DriveInfo driver in drivers)
{
TreeNode node = treeView.Nodes.Add(driver.Name);
}
//填充TreeView的顶级节点下的子节点
foreach (TreeNode node in treeView.Nodes)
{
NodeUpdate(node);
}
}
#endregion
#region 更新TreeView下的节点(列出当前目录下的子目录)
/// <summary>
/// 更新TreeView下的节点(列出当前目录下的子目录)
/// </summary>
/// <param name="node">上层节点</param>
public void NodeUpdate(TreeNode node)
{
try
{
node.Nodes.Clear();
//获得指定节点目录的目录对象
DirectoryInfo dir = new DirectoryInfo(node.FullPath);
//遍历该目录下的所有目录
foreach (DirectoryInfo d in dir.GetDirectories())
{
node.Nodes.Add(d.Name); //向指定节点下添加文件目录节点
}
//遍历该目录下的所有文件
foreach (FileInfo f in dir.GetFiles())
{
node.Nodes.Add(f.Name); //向指定节点下添加文件节点
}
//递归更新所有子结点
//foreach (TreeNode no in node.Nodes)
//{
// NodeUpdate(no); //递归调用
//}
}
catch { }
}
#endregion
}
}