C 磁碟目錄通過TreeView控制項顯示

2021-09-12 19:21:28 字數 1364 閱讀 3070

最終效果:

使用到的窗體和控制項  :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...