using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.IO;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace C11_资源管理器
{
public partial class Form1 : Form
{

string path = @"d:\广州传智";

public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
//得到根目录下的所有的子目录的路径
string[] dirs = Directory.GetDirectories(path);
//TreeView下的根节点在TreeView对象的Nodes集合中.
foreach (string dir in dirs)
{
//每1个节点的类型是1个TreeNode类型
//TreeNode对象的Text属性就是 节点上面显示的文本.
TreeNode node = new TreeNode();
//将全路径保存在node对象的tag属性中.
node.Tag = dir;
node.Text = Path.GetFileName(dir);
tvMain.Nodes.Add(node);
//tvMain.Nodes.Add(Path.GetFileName(dir));
}

}

/// <summary>
/// 在选中1个节点之后
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void tvMain_AfterSelect(object sender, TreeViewEventArgs e)
{
//0. 清空ListView中的所有的项目
lvData.Items.Clear();
//1. 得到选中的节点
string path = tvMain.SelectedNode.Tag.ToString();
//2.得到选中的节点所代表的文件夹的路径
//3. 将这个路径下的所有的文件的信息读出.
//将路径下面的所有的文件的信息返回.
string[] files = Directory.GetFiles(path);
ListViewItem item = null;
//遍历files数组 将每1个元素封装为1个ListViewItem对象 并添加到ListView中
FileInfo info = null;
foreach (string file in files)
{
info = new FileInfo(file);
item = new ListViewItem();
item.Text = Path.GetFileName(file);
item.Tag = file;
item.SubItems.Add(info.Length.ToString());
item.SubItems.Add(info.CreationTime.ToString());
lvData.Items.Add(item);
}
//加载当前目录下的子文件夹为当前节点的子节点.
string[] dirs = Directory.GetDirectories(path);
foreach (string str in dirs)
{
TreeNode node = new TreeNode();
node.Text = Path.GetFileName(str);
node.Tag = str;
tvMain.SelectedNode.Nodes.Add(node);
}

}

private void 删除ToolStripMenuItem_Click(object sender, EventArgs e)
{
//1. 得到我们选中的那1项吧
string path = lvData.SelectedItems[0].Tag.ToString();
//2. 得到选中的那1项的文件的全路径
if (MessageBox.Show("你真的要删除吗?删除以后就找不到了哦!", "信息提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning)== System.Windows.Forms.DialogResult.Yes)
{
// //3.删除文件.
File.Delete(path);
lvData.SelectedItems[0].Remove();
}
}
}
}

递归生成treeview树形节点(没有用递归函数之后会有补充,这里只用系统的内置方法去生成)的更多相关文章

  1. Python之旅Day3 文件操作 函数(递归|匿名|嵌套|高阶)函数式编程 内置方法

    知识回顾 常见五大数据类型分类小结:数字.字符串.列表.元组.字典 按存值个数区分:容器类型(列表.字典.元组) 标量原子(数字.字符串) 按是否可变区分:可变(列表.字典) 不可变(数字.字符串.元 ...

  2. python递归和内置方法

    递归:函数调用自身 核心:递进的时候能够达到一个结果,问题规模越来越小(不一定要真正的达到):设置一个条件,能够让最后一次函数调用结束 练习: ​ 第一个人的姓名是16岁,后面每个人的年龄都比前一个大 ...

  3. 递归,装饰器,python常用内置方法

    **递归**        def calc(n):            print(n)            if int(n / 2) == 0:  条件判断                r ...

  4. C# winform 递归选中TreeView子节点

    /// <summary> /// 递归选中所有的自节点 /// </summary> /// <param name="nodeThis">T ...

  5. swift 4 生成随机数的内置方法汇总

    第一种是drand48(),不接收参数, 返回的类型是Double. 就返回 0到1之间的Double类型的随机数.举个例子: //每次点击button,button 的颜色会随机变换. class ...

  6. 简学Python第三章__函数式编程、递归、内置函数

    #cnblogs_post_body h2 { background: linear-gradient(to bottom, #18c0ff 0%,#0c7eff 100%); color: #fff ...

  7. day 14 三元运算符,列表字典推导式,递归,匿名函数,内置函数(排序,映射,过滤,合并)

    一.三元运算符 就是if.....else..... 语法糖 前提:if和else只有一条语句 #原始版 cmd=input('cmd') if cmd.isdigit(): print('1') e ...

  8. Python基础3 函数、递归、内置函数

    本节内容 1. 函数基本语法及特性 2. 参数与局部变量 3. 返回值 嵌套函数 4.递归 5.匿名函数 6.函数式编程介绍 7.高阶函数 8.内置函数 温故知新 1. 集合 主要作用: 去重 关系测 ...

  9. python学习笔记:第14天 内置函数补充和递归

    一.匿名函数 匿名函数主要是为了解决一些简单需求而设计的一种函数,匿名函数的语法为: lambda 形参: 返回值 先来看一个例子: # 计算n的n次方 In[2]: lst = lambda n: ...

随机推荐

  1. convolution-卷积神经网络

    训练mnist数据集 结构组成: input_image --> convolution1 --> pool1 --> convolution2 --> pool2 --> ...

  2. sqoop1的安装以及数据导入导出测试

    下载 wget http://mirror.bit.edu.cn/apache/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz 解压 tar -zxf ...

  3. controller检查header

    以前都只能拿到request再检查,其实有相应的注解. public Result updateRecentScore(@RequestBody Map map, @RequestHeader(&qu ...

  4. redis详解(三)

    1. 使用redis有哪些好处? (1) 速度快,因为数据存在内存中,类似于HashMap,HashMap的优势就是查找和操作的时间复杂度都是O(1) (2) 支持丰富数据类型,支持string,li ...

  5. springMVC获取用户的数据

    打算记录网站的访问信息,没有眉目,下记下参考. SpringMVC-获得用户请求数据

  6. Java HashMap两种遍历方式

    第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Ma ...

  7. js登录弹出框插件

    第一步:页面引入css:<link rel="stylesheet" type="text/css"" href="common/cs ...

  8. Haskell语言学习笔记(45)Profunctor

    Profunctor class Profunctor p where dimap :: (a -> b) -> (c -> d) -> p b c -> p a d d ...

  9. delphi实现两个目录路径的链接

    filepath := PathJoin(['C:', 'path1', 'path2\', 'a.doc']); // filepath = 'C:\path1\path2\a.doc' 代码: f ...

  10. 向oracle中的表插入数据的方法

    向oracle中的表插入数据的方法有以下几种: 假设表名为User 第一种方法:select t.*,rowid from User t;-->点击钥匙那个标记就可向表中添加数据 第二种方法:s ...