如何把一个递归获取所有子目录的函数写成使用循环调用的,下面的我的实例递归代码,主要想举一反三,所以想知道大致是个什么实现思路。
public static List<string> files = new List<string>();
public static void GetFiles(DirectoryInfo file) {
string path = file.FullName;
bool isFile = File.Exists(path);
bool isDir = Directory.Exists(path);
if (!isFile && !isDir) {
return;
} else if (isFile) {//是文件
files.Add(path);
return;
}
//是文件夹
FileSystemInfo[] fis = file.GetFileSystemInfos();
foreach (FileSystemInfo fi in fis) {
//文件夹,递归
DirectoryInfo tempDirPath = new DirectoryInfo(fi.FullName);
GetFiles(tempDirPath);
}
}