首页 > 代码库 > 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

 

}

}