參考:http://www.cnblogs.com/skylaugh/archive/2012/09/23/2698850.html
DirectoryInfo TheFolder=new DirectoryInfo(folderFullName);
//遍歷文件夾
foreach(DirectoryInfo NextFolder in TheFolder.GetDirectories())
this.listBox1.Items.Add(NextFolder.Name);
//遍歷文件
foreach(FileInfo NextFile in TheFolder.GetFiles())
this.listBox2.Items.Add(NextFile.Name);
---------------------------------------------------------------------------------------------------------------
如何獲取指定目錄包含的文件和子目錄
1. DirectoryInfo.GetFiles():獲取目錄中(不包含子目錄)的文件,返回類型為FileInfo[],支持通配符查找;
2. DirectoryInfo.GetDirectories():獲取目錄(不包含子目錄)的子目錄,返回類型為DirectoryInfo[],支持通配符查找;
3. DirectoryInfo. GetFileSystemInfos():獲取指定目錄下(不包含子目錄)的文件和子目錄,返回類型為FileSystemInfo[],支持通配符查找;
如何獲取指定文件的基本信息;
FileInfo.Exists:獲取指定文件是否存在;
FileInfo.Name,FileInfo.Extensioin:獲取文件的名稱和擴展名;
FileInfo.FullName:獲取文件的全限定名稱(完整路徑);
FileInfo.Directory:獲取文件所在目錄,返回類型為DirectoryInfo;
FileInfo.DirectoryName:獲取文件所在目錄的路徑(完整路徑);
FileInfo.Length:獲取文件的大小(字節數);
FileInfo.IsReadOnly:獲取文件是否只讀;
FileInfo.Attributes:獲取或設置指定文件的屬性,返回類型為FileAttributes枚舉,可以是多個值的組合
FileInfo.CreationTime、FileInfo.LastAccessTime、FileInfo.LastWriteTime:分別用於獲取文件的創建時間、訪問時間、修改時間;
遞歸遍歷文件夾和子文件夾:

1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.IO; 6 7 namespace 遍歷文件夾和子文件夾 8 { 9 class Program 10 { 11 private static FileStream fs; 12 private static StreamWriter sw; 13 14 static void Main(string[] args) 15 { 16 string path; 17 int leval=0; 18 19 Console.WriteLine("請輸入需要列出內容的文件夾的完整路徑和文件名:"); 20 path=Console.ReadLine(); 21 path.Replace('\\','/'); 22 23 fs = new FileStream("result.txt", FileMode.Create); 24 sw = new StreamWriter(fs); 25 26 //開始寫入文件 27 sw.WriteLine("遍歷結果如下:"); 28 sw.WriteLine(path); 29 30 listDirectory(path,leval); 31 32 //清空緩沖區 33 sw.Flush(); 34 //關閉流 35 sw.Close(); 36 fs.Close(); 37 Console.WriteLine("請按任意鍵繼續……"); 38 Console.ReadKey(); 39 } 40 41 /// <summary> 42 /// 列出path路徑對應的文件夾中的子文件夾和文件 43 /// 然后再遞歸列出子文件夾內的文件和文件夾 44 /// </summary> 45 /// <param name="path">需要列出內容的文件夾的路徑</param> 46 /// <param name="leval">當前遞歸層級,用於控制輸出前導空格的數量</param> 47 private static void listDirectory(string path,int leval) 48 { 49 DirectoryInfo theFolder = new DirectoryInfo(@path); 50 51 leval++; 52 53 //遍歷文件 54 foreach (FileInfo NextFile in theFolder.GetFiles()) 55 { 56 for (int i = 0; i < leval; i++) sw.Write('\t'); 57 sw.Write("-->"); 58 sw.WriteLine(NextFile.Name); 59 } 60 61 //遍歷文件夾 62 foreach (DirectoryInfo NextFolder in theFolder.GetDirectories()) 63 { 64 for (int i = 0; i < leval; i++) sw.Write('\t'); 65 sw.Write("--)"); 66 sw.WriteLine(NextFolder.Name); 67 listDirectory(NextFolder.FullName, leval); 68 } 69 } 70 } 71 }