使用winform来递归实现资源管理器
這里主要是對(duì)TreeView控件的學(xué)習(xí)
所使用到的方法:
string path=@"E:\歌詞";
//獲得指定文件夾下所有文件夾的名稱,這是帶路徑的,如:E:\歌詞\1111111
?
//獲得指定路徑下的文件的文件名,不帶路徑與后綴名 ,如:01 Welcome To New York
Path.GetFileNameWithoutExtension(FilePath[i])
//這是TreeNode節(jié)點(diǎn)的集合類
TreeNodeCollection
//TreeNode 節(jié)點(diǎn)可以New,可以設(shè)置text,與Tag屬性
//TreeView控件 有SelectedNode 獲取選中的節(jié)點(diǎn),與事件 tv_AfterSelect,選中節(jié)點(diǎn)發(fā)生改變之后所觸發(fā)
代碼:
//方法需傳入絕對(duì)路徑,以及Treeview的Name的Nodes屬性 private void GetNodeValue(string path, TreeNodeCollection tc){//加載選定文件夾下的文件的名字string[] FilePath = Directory.GetDirectories(path);//獲得文件的名字string filename = string.Empty;//獲得文件夾的名字for (int i = 0; i < FilePath.Length; i++){filename = Path.GetFileNameWithoutExtension(FilePath[i]);TreeNode tn = new TreeNode();tn.Text = filename;//在treeview節(jié)點(diǎn)下存下每個(gè)節(jié)點(diǎn)的路徑 tc.Add(tn);//這里遇到了遞歸,遇到文件夾,先進(jìn)入文件夾里面去遍歷,將大的tr,替換為小的tr GetNodeValue(FilePath[i],tn.Nodes);}//因?yàn)槟夸浢荒鼙稽c(diǎn)擊,獲得目錄下的文件//獲得文件夾下文件的名字,string[] Newfilepath = Directory.GetFiles(path);for (int i = 0; i < Newfilepath.Length; i++){filename = Path.GetFileNameWithoutExtension(Newfilepath[i]);TreeNode tn = new TreeNode();tn.Text = filename;//在treeview節(jié)點(diǎn)下存下每個(gè)節(jié)點(diǎn)的路徑tn.Tag = Newfilepath[i];tc.Add(tn);}}//然后是點(diǎn)擊事件,發(fā)生之后,將讀取路徑下的值,放進(jìn)textbox中private void tv_AfterSelect(object sender, TreeViewEventArgs e){try{string path = tv.SelectedNode.Tag.ToString();txtBox.Text = File.ReadAllText(path, Encoding.UTF8);}catch { }}?
擴(kuò)展:
1、TreeView控件和TreeNode的常用成員
AfterSelect //單擊事件
TreeView.HideSelection?=?False;??//可讓選中節(jié)點(diǎn)保持高亮
Node?=?TreeView.SelectedNode; //已選中的當(dāng)前樹(shù)節(jié)點(diǎn)
string?I?=?treeView1.SelectedNode.Index.ToString()
???//當(dāng)前節(jié)點(diǎn)的索引值,由0開(kāi)始,只限于同父、同級(jí)的節(jié)點(diǎn)集合
treeView1.SelectedNode.Text?=?“String”; //設(shè)置當(dāng)前節(jié)點(diǎn)的文本
??string?String?=?treeView1.SelectedNode.Text;?//獲取當(dāng)前節(jié)點(diǎn)的文本
treeView1.SelectedNode.FullPath.ToString();
??//當(dāng)前節(jié)點(diǎn)的全路徑,從根節(jié)點(diǎn)開(kāi)始到當(dāng)前節(jié)點(diǎn),由節(jié)點(diǎn)的Text屬性加“\”連接而成的字符串,最后的節(jié)點(diǎn)后面沒(méi)有“\”
treeView1.SelectedNode.Tag;
??//當(dāng)前節(jié)點(diǎn)的其他信息,可以是各種類型,也可以是對(duì)象
treeView1.SelectedNode.Name:樹(shù)節(jié)點(diǎn)的名稱,也是(TreeNodes集合)TreeNodeCollection?中該節(jié)點(diǎn)的鍵(key)
treeView1.SelectedNode.Parent; //當(dāng)前樹(shù)節(jié)點(diǎn)的父樹(shù)節(jié)點(diǎn)。
treeView1.SelectedNode.Level; //樹(shù)視圖的深度(從零開(kāi)始)
2、在treeView控件中,成員Nodes其實(shí)就是一個(gè)TreeNode的集合,所以也可以使用TreeNodeCollection的成員:
?
TreeNodeCollection?類,TreeNodes集合類
treeView1.Nodes.Add(字符串);
??//以字符串為顯示文本添加節(jié)點(diǎn)到樹(shù)集合的末尾
treeView1.Nodes.Add(TreeNode);
??//將現(xiàn)有的樹(shù)節(jié)點(diǎn)添加到樹(shù)節(jié)點(diǎn)集合的末尾。
treeView1.Nodes.Add(String,?String):創(chuàng)建具有指定鍵和文本的新樹(shù)節(jié)點(diǎn),并將其添加到集合中。
treeView1.Nodes.Find(string?key,bool?searchAllChildren):查找具有指定鍵的樹(shù)節(jié)點(diǎn),可以選擇搜索子節(jié)點(diǎn),返回一個(gè)list[]。
轉(zhuǎn)載于:https://www.cnblogs.com/Raymond201508/p/4769653.html
總結(jié)
以上是生活随笔為你收集整理的使用winform来递归实现资源管理器的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 微信支付(APP)集成时碰到的问题(.n
- 下一篇: 移动端 项目开发经验集锦