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. IPv4检验和计算

    IP分组中的检验和仅覆盖首部,而不管数据,首部被划分为16位的段,把所有段相加,结果取反,塞进首部检验和里 在目的主机中,首部划分为16位,相加,结果肯定是16个1,然后取反,结果为0.如下 在目的主 ...

  2. php缓存类

    <?php /* * 缓存类 cache * 实 例: include( "cache.php" ); $cache = new cache(30); $cache-> ...

  3. mysql 1292-Truncated incorrect double value

    sql = "select id from company where date_year_month = %s" % "2017-3" 出错 将%s改为'%s ...

  4. How to Pronounce ‘to the’ in a Sentence

    How to Pronounce ‘to the’ in a Sentence Share Tweet Share Tagged With: The Word THE, TO Reduction St ...

  5. console.log等不能打印全部数据/信息

    有时候console.log在chrome调试控制台打印不全,如下: 这个时候,我们可以点击进去:用watch 工具,添加变量,右击copy value 选项:

  6. Android模拟器内安装应用

    一.通过apk安装器安装应用 1.下载apk安装器(网上随便搜一个就可以) 2.下载要测试的应用的apk,我这里下载的是微信的apk 3.打开apk安装器,点击右上角的Devices选择要安装到的设备 ...

  7. PIE结对编程

    学习进度条 点滴成就 学习时间 新编写代码行数 博客量 学到知识点 第一周 8 0 0 了解软件工程 第二周 7 0 1 了解软件工程 第三周 11 0 1 用例图 第四周 6 25 0 结对编程 第 ...

  8. python 的时间与日期

    显示当前日期: import time print time.strftime('%Y-%m-%d %A %X %Z',time.localtime(time.time())) 或者 你也可以用: p ...

  9. 5.Longest Palindromic Substring (String; DP, KMP)

    Given a string S, find the longest palindromic substring in S. You may assume that the maximum lengt ...

  10. 使用css实现特殊标志或图形

    1. 前言 由于图片占的空间比较大,且图片越多,越不好管理,所以有些时候,我们可以使用一些简单的标签样式来实现简单的图形标志来替代图片. 2. 实例展示: 三角形示例 示例代码: <style ...