C#用TreeView访问文件或文件夹,通过递归,展开所有文件夹(类似资源管理器的树形窗体)...

这是一个很简单的窗体操作,以前是学WEB,对WINFORM的不是很熟悉,所以第一次用这个TreeView有点不会用的感觉。在网上找的都太过杂乱复杂。所以把自己写的贴出来,供一些初学者参考。不断的递归文件。以此来遍历整个电脑的磁盘内容,过程也很简单。这种算法的时间复杂度太大。以至于窗体打开较慢,据说有可以更简便的实现,提高效率,希望懂的人可以指点下。。。

 

View Code
 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Data;
 5 using System.Drawing;
 6 using System.Text;
 7 using System.Windows.Forms;
 8 using System.IO;
 9 namespace Object
10 {
11     public partial class Form3 : Form
12     {
13         public Form3()
14         {
15             InitializeComponent();
16         }
17         private void Form1_Load(object sender, EventArgs e)
18         {
19             try
20             {
21                 ///获取所有驱动盘目录
22                 string[] s = Directory.GetLogicalDrives();
23                 ///通过遍历去添加所有父节点
24                 foreach (string m in s)
25                 {
26                     ///父节点
27                     TreeNode node = new TreeNode(m);
28                     ///给treeview添加节点
29                     this.treeView1.Nodes.Add(node);
30                     ///调用方法递归出磁盘的所有文件,并将父节点和路径传入
31                     expendtree(m,node);
32                 }
33             }
34             catch { }
35         }
36         private void expendtree(string path,TreeNode tn)
37         {
38             try
39             {
40                 ///获取父节点目录的子目录
41                 string[] s1 = Directory.GetDirectories(path);
42                 ///子节点
43                 TreeNode subnode = new TreeNode();
44                 ///通过遍历给传进来的父节点添加子节点
45                 foreach (string j in s1)
46                 {
47                     subnode = new TreeNode(j);
48                     tn.Nodes.Add(subnode);
49                     ///对文件夹不断递归, 得到所有文件
50                     expendtree(j, subnode);
51                 }  
52             }
53             catch { } 
54         }
55     }
56 }

 

 

转载于:https://www.cnblogs.com/wyh123/archive/2012/05/15/2501971.html

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值