采用递归调用的方式遍历,文件夹和子文件中的所有文件。
public int FindFiles(string dirPath,out List<string> fileList,string fileExtention) { fileList = new List<string>();//初始化输出参数 try { DirectoryInfo di = new DirectoryInfo(dirPath);//获取指定文件夹信息 FileSystemInfo[] fi = di.GetFileSystemInfos();//获取目录下所有文件及文件夹Info(不包含子目录) foreach(var i in fi)//遍历每个文件/文件夹 { if(i is DirectoryInfo)//如果是文件夹 { FindFiles(i.FullName,out fileList,fileExtention);//调用本身 } else { if (i.Extension == fileExtention)//否则如果找到符合指定扩展名的文件,加入文件列表 { fileList.Add(i.Name); } } } return 0; } catch//异常返回-1 { return -1; } }