using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO; namespace 將指定目錄下的所有子文件或子目錄加載到TreeView { public partial class Form2 : Form { public Form2() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { #region 只加載子目錄 ////1.獲取用戶輸入的路徑path //string path = textBox1.Text.Trim(); ////2.獲取該路徑下的所有的子文件夾 ////2.1把這些所有文件夾加載到TreeView上 //string[] dirs = Directory.GetDirectories(path); ////遍歷所有的文件夾的路徑加載到TreeView上 //foreach (string item in dirs) //{ // treeView1.Nodes.Add(Path.GetFileName(item)); //} ////3.獲取指定目錄下的所有的子文件 ////3.1把這些文件加載到TreeView上 //string[] files = Directory.GetFiles(path); //foreach (string item in files) //{ // treeView1.Nodes.Add(Path.GetFileName(item)); //} #endregion #region 遞歸加載所有的目錄,按照層次結構顯示到TreeView 上 //獲取用戶輸入的一個路徑 string path = textBox1.Text.Trim(); //調用該方法實現將指定路徑下的子文件與子目錄按照層次結構加載到TreeView LoadFilesAndDirectoriesToTree(path, treeView1.Nodes); //treeView1.Nodes //TreeNodeCollection c = treeView1.Nodes; //LoadData(path, c); #endregion } public void LoadData(string path, TreeNodeCollection collection) { } //將目錄與文件加載到TreeView上 private void LoadFilesAndDirectoriesToTree(string path, TreeNodeCollection treeNodeCollection) { //1.先根據路徑獲取所有的子文件和子文件夾 string[] files = Directory.GetFiles(path); string[] dirs = Directory.GetDirectories(path); //2.把所有的子文件與子目錄加到TreeView上。 foreach (string item in files) { //把每一個子文件加到TreeView上 treeNodeCollection.Add(Path.GetFileName(item)); } //文件夾 foreach (string item in dirs) { TreeNode node = treeNodeCollection.Add(Path.GetFileName(item)); //由於目錄,可能下面還存在子目錄,所以這時要對每個目錄再次進行獲取子目錄與子文件的操作 //這里進行了遞歸 LoadFilesAndDirectoriesToTree(item, node.Nodes); } } //public void M1() //{ // //... // M1(); // //.... //} //public void M2() //{ //} } }