这是一个很简单的窗体操作,以前是学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 }