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 }

 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM