19年写的博客,刚入门写的变量名很难看,下面是20年10月14日重写。
// 功能:获取所给路径文件夹内部的所有子文件,递归。
// 参数:directoryPath当前处理的文件夹绝对路径,files已获取的子文件们
// 返回:files 所有子文件绝对路径
public static List<string> GetAllSubFiles(string directoryPath, List<string> files)
{
DirectoryInfo currentDirectoryInfo = new DirectoryInfo(directoryPath);
// 当前一级文件夹内的子文件们
FileInfo[] currentFileInfos = currentDirectoryInfo.GetFiles();
foreach (FileInfo f in currentFileInfos)
{
files.Add(f.FullName);
}
// 当前一级文件夹内的子文件夹们
DirectoryInfo[] subDirectoryInfos = currentDirectoryInfo.GetDirectories();
//递归
foreach (DirectoryInfo d in subDirectoryInfos)
{
GetAllSubFiles(d.FullName, files);
}
return files;
}
调用:
List<string> files = new List<string>();
files = GetAllSubFiles("D:\\我的文件夹", files);
foreach(var file in files)
{
Console.WriteLine(file);
}