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