递归 public static List<string> GetFilesFromDir(string path) { List<string> files = new List<string>(Directory.GetFiles(path)); List<string> dirs = new List<string>(Directory.GetDirectories(path)); foreach (string childDir in dirs) { files.AddRange(GetFilesFromDir(childDir)); } return files; } 直接用系统自带的函数: public static List<string> GetFilesFromDir2(string path) { List<string> files = new List<string>(Directory.GetFiles(path, "*", SearchOption.AllDirectories)); return files; }