实现效果:

  

知识运用:

  ListView控件中Items集合的Add方法  TteeView控件中Nodes集合的Add方法

实现代码:

        private void Form1_Load(object sender, EventArgs e)
{
TreeNode rootNode = new TreeNode("我的电脑");
treeView1.Nodes.Add(rootNode);
} private void ListViewShow(TreeNode NodeDir) {
listViewFile.Clear();
try
{
if (NodeDir.Parent == null)
{
foreach (string DrvName in Directory.GetLogicalDrives())
{
ListViewItem ItemList = new ListViewItem(DrvName);
listViewFile.Items.Add(ItemList);
}
}
else
{
foreach (string dirName in Directory.GetDirectories((string)NodeDir.Tag))
{
ListViewItem dirItem = new ListViewItem(dirName);
listViewFile.Items.Add(dirItem);
}
foreach (string fileName in Directory.GetFiles((string)NodeDir.Tag))
{
ListViewItem fileItem = new ListViewItem(fileName);
listViewFile.Items.Add(fileItem);
}
}
}
catch { }
} private void TreeViewShow(TreeNode selectNode) {
try {
if(selectNode.Nodes.Count==0){
if (selectNode.Parent == null)
{
foreach (string drvName in Directory.GetLogicalDrives())
{
TreeNode drvNode = new TreeNode(drvName);
drvNode.Tag = drvName;
selectNode.Nodes.Add(drvNode);
}
}
else {
foreach (string dirName in Directory.GetDirectories((string)selectNode.Tag))
{
TreeNode dirNode = new TreeNode(dirName);
dirNode.Tag = dirName;
selectNode.Nodes.Add(dirNode);
}
}
}
}catch(Exception ex){
MessageBox.Show(ex.Message);
}
} private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
TreeViewShow(e.Node);
ListViewShow(e.Node);
}

  

用TreeView控件遍历磁盘目录的更多相关文章

  1. 基于Treeview控件遍历本地磁盘

    一.前言 Treeview控件常用于遍历本地文件信息,通常与Datagridview与ImageList搭配.ImageList控件用于提供小图片给TreeView控件,DatagridView通常显 ...

  2. C#TreeView控件遍历文件夹下所有子文件夹以及文件

    一直对递归的理解不深刻,有时候觉得很简单,可是用起来总会出错.这里需要在TreeView控件里显示一个文件夹下的所有目录以及文件,毫无意外的需要用到递归. 一开始,想到用递归写一个生成每一个节点(Tr ...

  3. Visual Studio 2010下ASPX页面的TreeView控件循环遍历

    如果维护一个老系统就总会遇到各种问题,而这次是TreeView的循环遍历.对于Visual Studio2010上aspx页面的TreeView控件,我感受到了什么叫集微软之大智慧.与二叉树型不一样. ...

  4. [转] C#2010 在TreeView控件下显示路径下所有文件和文件夹

    原文 张丹-小桥流水,C#2010 在TreeView控件下显示路径下所有文件和文件夹 C#2010学习过程中有所收获,便总结下来,希望能给和我一样在学习遇到困难的同学提供参考. 本文主要介绍两个自定 ...

  5. TreeView控件使用

    treeView1.SelectedNode = treeView1.Nodes[0];  //选中当前treeview控件的根节点为当前节点添加子节点:  TreeNode tmp; tmp = n ...

  6. Win32中TreeView控件的使用方法,类似于资源管理器中文件树形显示方式

    首先是头文件,内容如下: #include <tchar.h> #include "..\CommonFiles\CmnHdr.h" #include <Wind ...

  7. 利用深搜和宽搜两种算法解决TreeView控件加载文件的问题。

    利用TreeView控件加载文件,必须遍历处所有的文件和文件夹. 深搜算法用到了递归. using System; using System.Collections.Generic; using Sy ...

  8. C#Winform中treeView控件使用总结

    1.如何展开结点时改变图标(注意:不是选中时) 要在目录中使用图标首先要加入一个控件ImageList(命名为imageList1),然后可以按图片的index或名称引用图片. 然后需要在TreeVi ...

  9. Treeview控件的Node节点延迟加载

    Treeview控件是一个很常用的控件,用于展示资源或者组织结构的时候很方便,通常会在系统启动时进行资源的加载和节点目录的初始化,但在资源较多和层级较深的情况下,所有节点加载出来会耗费太多时间,影响体 ...

随机推荐

  1. MCP|LQ|DIAlignR provides precise retention time alignment across distant runs in DIA and targeted proteomics

    文献名: DIAlignR provides precise retention time alignment across distant runs in DIA and targeted prot ...

  2. Hibernate的优化方案

    使用参数绑定 使用绑定参数的原因是让数据库一次解析SQL,对后续的重复请求可以使用生成好的执行计划,这样做节省CPU时间和内存. 避免SQL注入. 尽量少使用NOT 如果where子句中包含not关键 ...

  3. javascript中的Set和Map数据结构

    Set数据结构 类似数组,所有的数据都是唯一的,没有重复值,它本身是一个构造函数 size 数据长度 add() 添加一个数据 delete() 删除一个数据 has() 查找一个数据 clear() ...

  4. ssl加密

    握手前使用非对称加密, 握手后使用对称加密 前期握手就是用来协商对称加密算法的

  5. Windows安全认证是如何进行的?[Kerberos篇]

    最近一段时间都在折腾安全(Security)方面的东西,比如Windows认证.非对称加密.数字证书.数字签名.TLS/SSL.WS-Security等.如果时间允许,我很乐意写一系列的文章与广大网友 ...

  6. Golang: runnerw.exe: CreateProcess failed with error 216 (no message available)

    话说这个我应该遇到几次了 每次新项目都有这问题,我的记忆是金鱼的记忆吗? 好在这次隐约记起是包名的问题... 方法 修改包名为main

  7. Java继承改进

    一.java继承改进 首先,多继承的缺点: 1.继承多个父类,父类中方法名相同,产生歧义 2.父类中方法同名,子类未覆盖,也会歧义 所以,java改进,类只能单继承,接口可以多继承 接口中只有抽象方法 ...

  8. 关于response.write(alert(''))弹窗改变页面格式问题

    不建议使用 Response.Write("<script>alert('增加年级失败')</script>"); 而使用 Page.ClientScrip ...

  9. spring batch 读取多个文件数据导入数据库

    项目的目录结构 需要读取文件的的数据格式 applicatonContext.xml的配置 <?xml version="1.0" encoding="UTF-8& ...

  10. CSS文档优化

    首先了解下CSS的渲染逻辑,它是从标记的最后一位开始搜索的,例如:.myclass li a,首选它会遍历所有的<a>,然后看哪些<a>之前有<li>,然后再看哪些 ...