- 一、代码片段
- 二、使用用例
- 三、测试结果
导言:记录C#递归获取文件夹下 所有文件 代码片段 一、代码片段
///二、使用用例/// 获取最终需要的文件夹路径字符串集合 /// /// ///private List getFiles(string folderName, bool useOnlyName = false) { List fileNameList = new List () { }; DirectoryInfo theFolder = new DirectoryInfo(folderName); DirectoryInfo[] dirInfo = theFolder.GetDirectories(); fileNameList = getFileList(dirInfo, fileNameList, useOnlyName); FileInfo[] fileInfo = theFolder.GetFiles(); for (int i = 0; i < fileInfo.Length; i++) { if(useOnlyName) { fileNameList.Add(fileInfo[i].Name); } else { fileNameList.Add(fileInfo[i].FullName); } } return fileNameList; } /// /// 递归获取文件夹里的所有文件(包括子文件夹内的文件) /// /// /// ///private List getFileList(DirectoryInfo[] dirInfos, List fileNameList, bool useOnlyName = false) { foreach (DirectoryInfo sonFolder in dirInfos) { FileInfo[] fileInfo = sonFolder.GetFiles(); for (int i = 0; i < fileInfo.Length; i++) { if(useOnlyName) { fileNameList.Add(fileInfo[i].Name); } else { fileNameList.Add(fileInfo[i].FullName); } } if (sonFolder.GetDirectories() != null) { getFileList(sonFolder.GetDirectories(), fileNameList, useOnlyName); } } return fileNameList; } }
//获取文件完整路径 List三、测试结果fileWithPath = getFiles("./Documents/Help/Pages"); //只获取文件名 List fileWithPath = getFiles("./Documents/Help/Pages", true);
获取完整路径:
获取文件名



