private void zimulu(TreeNode node)//在點開節點的一瞬間,解析當前目錄的第三級目錄 { try//對錯誤或者許可權不作處理 { //根據獲得的完整目錄得到該目錄下的子目錄 ...
private void zimulu(TreeNode node)//在點開節點的一瞬間,解析當前目錄的第三級目錄 { try//對錯誤或者許可權不作處理 { //根據獲得的完整目錄得到該目錄下的子目錄 foreach (var dirinfor in new DirectoryInfo(node.Tag.ToString()).GetDirectories()) { //依據目錄的完整目錄獲取其子目錄,否則找不到文件 //以子目錄的文件名為名稱創建樹節點 var n = new TreeNode(dirinfor.Name); n.Tag = dirinfor.FullName;//將子目錄的完整目錄傳給創建的樹節點, //使所有的子目錄都有完整目錄, //便於調用此函數解析當前節點的第三級目錄時, //能夠得到子目錄完整目錄 node.Nodes.Add(n);//將創建的樹節點添加到當前目錄分配的樹節點的集合中,子目錄形成 } } catch { } } private void Form1_Load(object sender, EventArgs e) { foreach (var diver in Environment.GetLogicalDrives())//獲取操作平臺的驅動器名稱 { var node = new TreeNode(diver);//依據驅動器的目錄創建第一級樹節點 node.Tag = diver;//將驅動器的完整目錄賦給第一級節點 tvwfile.Nodes.Add(node);//將創建的節點添加到tvwfile分配的樹節點的集合中 zimulu(node);//調用該函數,解析當前節點下的子目錄 } } private void tvwfile_BeforeExpand(object sender, TreeViewCancelEventArgs e) { foreach (TreeNode node in e.Node.Nodes/*操作節點下的子目錄集合*/)//遍歷操作節點下的子目錄集合 { zimulu(node);//調用該函數,當前的子目錄具有完整目錄 } } private void tvwfile_BeforeCollapse(object sender, TreeViewCancelEventArgs e) { foreach (TreeNode node in e.Node.Nodes) { node.Nodes.Clear();//當點擊摺疊的一瞬間,除當前節點外,其所有的子目錄全部關閉 //其子目錄不會清空,但是其第三級目錄已被清空 } } private void tvwfile_BeforeSelect(object sender, TreeViewCancelEventArgs e) { listView1.Items.Clear(); try { //獲取該完整目錄下所有的文件和子目錄 foreach (var file in new DirectoryInfo(e.Node.Tag.ToString()).GetFileSystemInfos()) { var f = new ListViewItem(file.Name); f.SubItems.Add(file.LastAccessTime.ToLocalTime().ToString()); listView1.Items.Add(f);//將讀取的所有文件和文件夾添加到該集合中 } } catch { } }
//左邊空白區域是treeview Dock是left 中間黑線是splitter Dock是left 右邊是listview Dock是fill view是details