最終效果:
使用到的窗體和控制項 :form窗體、treeview控制項
思路:主要是幾個自定義private函式
第一步:建立乙個根目錄「我的電腦」 ,在根目錄下新增第二級節點「c盤」、「d盤」等
//載入電腦的第一級和第二級
private void load_directory()
//迴圈遍歷獲取電腦的所有磁碟符,把所有的磁碟放入tree的節點中
private void add_panfu(treenode topnode)
break;}}
}
呼叫寫好的函式
private void form1_load(object sender, eventargs e)
結果截圖:
此時我們開啟節點發現只有我們新增的空節點,所以我們接下來還要進入到磁碟中把其下的第**資料夾、檔案填到樹上
//把父資料夾下面的所有資料夾、檔案偏歷一遍並新增到節點下
private void add_childnode( treenode parentnode)
//如果是資料夾除了建立子節點加入父節點 還要遍歷其內容
else if (fsinfo is directoryinfo)}}
catch (exception e)}}
呼叫寫好的函式
//在將要節點展開+號的之前的響應事件呼叫,這樣我們就可在展開節點時把子節點都新增上
private void treeview1_beforeexpand(object sender, treeviewcanceleventargs e)
效果截圖:
如果你達到這樣的效果,那麼恭喜你你已經可以完成任務了,有興趣的朋友可以繼續看下面的內容。
ps:題外話:
問題一:可以直接把所有的節點遞迴遍歷後全新增好嗎?
答:可以但是開銷太大;因為要把所有的檔案都遍歷一遍時間太長。
問題二:摺疊節點後要把新增的檔案節點再清除(有必要嗎)
答:可做可不做,做了可以提前釋放資源,不做在使用者不開啟很多很多節點的情況下沒影響
磁碟目錄結構,TreeView
description 獲取磁碟目錄的結構,樹行現實與treeview上.1.1 2 初始化驅動器 3 4 tv控制項控制代碼 5public static void initdrive treeview treeview 6 16treeview.nodes.add node 17createch...
C 讀取目錄載入到TreeView
private void form1 load object sender,eventargs e 遞迴呼叫,載入images下的所有資料夾。private void gettreeviewdata string path,treenode node 該方法就是讀取指定資料夾下的所有檔案 通過遞迴呼...
運用treeview顯示本地硬碟目錄
using system using system.data using system.configuration using system.collections using system.web using system.web.security using system.web.ui usin...