treeview绑定硬盘数据文件

本文介绍了一个使用C#实现的磁盘目录遍历工具。该工具通过Win32管理API获取计算机上的逻辑磁盘,并递归地列出指定磁盘路径下的所有子目录。文章提供了完整的类定义和方法实现,可用于Windows文件系统的目录结构展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

using System.IO;
using System.Management;

public class BindFiles
{
private TreeView treeView1;

public BindFiles(TreeView tree)
{
treeView1 = tree;
}

//绑定treeView
public void GetTreeNode()
{
this.treeView1.Nodes.Clear();
SelectQuery selectQuery = new SelectQuery("select * from win32_logicaldisk");
  ManagementObjectSearcher searcher = new ManagementObjectSearcher(selectQuery);
int i = 0;
  foreach (ManagementObject disk in searcher.Get())
{
if(disk["DriveType"].ToString() == "3")
{
TreeNode node = new TreeNode();
node.Text = disk["Name"].ToString();
node.Tag = disk["Name"].ToString()+"//";
node.ImageIndex = 0;
this.treeView1.Nodes.Add(node);

//开始不想加载子文件,完则将此句代码注释
InsertTree(treeView1.Nodes[i].Nodes, disk["Name"].ToString());

i ++;
}
}
}

/// <summary>
/// 填充treeView节点
/// </summary>
/// <param name="nodes">要填充节点的父节点的子节点集合</param>
/// <param name="dir">父节点所代表的路径</param>
public void InsertTree(TreeNodeCollection nodes, string dir)
{
string[] cats = new string[0];
try { cats = Directory.GetDirectories(dir); }
catch { }
if(cats.Length>0)
{
foreach(string cat in cats)
{
TreeNode node = new TreeNode();
node.Text = cat.Substring(cat.LastIndexOf("//")+1);
node.Tag = cat+"//";
node.ImageIndex = 1;
node.SelectedImageIndex = 2;
nodes.Add(node);
nodes[nodes.Count-1].EnsureVisible();
//不想一次性加载完所有子文件,则将此句代码注释
InsertTree(node.Nodes, cat);
}
}
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值