用TreeView控件遍历磁盘目录
实现效果:

知识运用:
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控件遍历磁盘目录的更多相关文章
- 基于Treeview控件遍历本地磁盘
一.前言 Treeview控件常用于遍历本地文件信息,通常与Datagridview与ImageList搭配.ImageList控件用于提供小图片给TreeView控件,DatagridView通常显 ...
- C#TreeView控件遍历文件夹下所有子文件夹以及文件
一直对递归的理解不深刻,有时候觉得很简单,可是用起来总会出错.这里需要在TreeView控件里显示一个文件夹下的所有目录以及文件,毫无意外的需要用到递归. 一开始,想到用递归写一个生成每一个节点(Tr ...
- Visual Studio 2010下ASPX页面的TreeView控件循环遍历
如果维护一个老系统就总会遇到各种问题,而这次是TreeView的循环遍历.对于Visual Studio2010上aspx页面的TreeView控件,我感受到了什么叫集微软之大智慧.与二叉树型不一样. ...
- [转] C#2010 在TreeView控件下显示路径下所有文件和文件夹
原文 张丹-小桥流水,C#2010 在TreeView控件下显示路径下所有文件和文件夹 C#2010学习过程中有所收获,便总结下来,希望能给和我一样在学习遇到困难的同学提供参考. 本文主要介绍两个自定 ...
- TreeView控件使用
treeView1.SelectedNode = treeView1.Nodes[0]; //选中当前treeview控件的根节点为当前节点添加子节点: TreeNode tmp; tmp = n ...
- Win32中TreeView控件的使用方法,类似于资源管理器中文件树形显示方式
首先是头文件,内容如下: #include <tchar.h> #include "..\CommonFiles\CmnHdr.h" #include <Wind ...
- 利用深搜和宽搜两种算法解决TreeView控件加载文件的问题。
利用TreeView控件加载文件,必须遍历处所有的文件和文件夹. 深搜算法用到了递归. using System; using System.Collections.Generic; using Sy ...
- C#Winform中treeView控件使用总结
1.如何展开结点时改变图标(注意:不是选中时) 要在目录中使用图标首先要加入一个控件ImageList(命名为imageList1),然后可以按图片的index或名称引用图片. 然后需要在TreeVi ...
- Treeview控件的Node节点延迟加载
Treeview控件是一个很常用的控件,用于展示资源或者组织结构的时候很方便,通常会在系统启动时进行资源的加载和节点目录的初始化,但在资源较多和层级较深的情况下,所有节点加载出来会耗费太多时间,影响体 ...
随机推荐
- Zookeeper下载方法
Zookeeper官网地址:http://zookeeper.apache.org/ Zookeeper下载链接:http://mirrors.tuna.tsinghua.ed ...
- 异常HttpMessageNotWritableException解决办法
1. 问题描述 在写SpringBoot项目的时候,由于是前后端分离项目,为了统一接口形式,使用一个类封装了返回数据的形式,但是在测试的时候报异常HttpMessageNotWritableExcep ...
- 问题 Can't load AMD 64-bit .dll on a IA 32-bit platform
问题简要描述: java.lang.UnsatisfiedLinkError: F:\Tools\tomcat6045\tomcat6.0.45_x64\apache-tomcat-6.0.45\bi ...
- thinkphp5.1跨模块调用控制器或者模型
tp5.1 采用命名空间的方式进行调用.
- IOS 关于tableview中cell的长按手势
说明:虽然是tableview中cell的长按手势 但是手势是添加在tableview上的 UILongPressGestureRecognizer *longpress = [[UILongPre ...
- JMeter - 如何创建可重用和模块化测试脚本
概述: 我的应用程序几乎没有业务关键流程,我们可以从中提出不同的业务工作流程.当我试图在JMeter中提出性能测试脚本时,我需要找到一些方法来创建可重用/模块化的测试脚本.这样我就可以创建不同的工作流 ...
- DSL与GPL
一.DSL 与 GPL DSL(Domain-Specified Language 领域特定语言),而与 DSL 相对的就是 GPL,最常见的 DSL 包括 Regex 以及 HTML & C ...
- js中去掉字符中间空格和首尾空格
转载: https://www.jb51.net/article/109522.htm 1. 去掉字符串前后所有空格: 代码如下: ? 1 2 3 4 function Trim(str) { ...
- 10-----关于DOM的时间操作
一.JavaScript的组成 JavaScript基础分为三个部分: ECMAScript:JavaScript的语法标准.包括变量.表达式.运算符.函数.if语句.for语句等. DOM:文档对象 ...
- Python踩坑之旅其一杀不死的Shell子进程
目录 1.1 踩坑案例 1.2 填坑解法 1.3 坑位分析 1.4 坑后扩展 1.4.1 扩展知识 1.4.1 技术关键字 1.5 填坑总结 1.1 踩坑案例 踩坑的程序是个常驻的Agent类管理进程 ...