public static List<string> TraverseDirector(string dir, bool isTraveSubDirFlag, bool isFilterSuffix, string suffix) { string suffix_ = "*.*"; if (isFilterSuffix) { suffix_ = suffix; } List<String> list = new List<string>(); DirectoryInfo d = new DirectoryInfo(dir); FileSystemInfo[] fsinfos = d.GetFileSystemInfos(suffix_, SearchOption.TopDirectoryOnly);//filter file format //FileSystemInfo[] fsinfos = d.GetFileSystemInfos();// foreach (FileSystemInfo fsinfo in fsinfos) { if (fsinfo is DirectoryInfo) //判斷是否爲文件夾 { if (isTraveSubDirFlag) { List<String> listSubFolder = TraverseDirector(fsinfo.FullName, isTraveSubDirFlag, isFilterSuffix, suffix);//遞歸調用 list.AddRange(listSubFolder); } } else { //Console.WriteLine(fsinfo.FullName);//輸出文件的所有路徑 list.Add(fsinfo.FullName); } } return list; }