算法~将文件夹下所有文件输出到日志文件中(包括所有子文件夹下的)
原创
©著作权归作者所有:来自51CTO博客作者仓储大叔的原创作品,请联系作者获取转载授权,否则将追究法律责任
概念:
算法文章,总是带给我们无穷的思考和兴趣,一个问题,多种解决方法,看你如何去思考它,对于标题所引出的问题,我觉得,使用递归是比较有效的方法,当然递归还有很多使用场合,如树型分类列表的操作等等。
注意:
使用递归时,初学者要特别注意的就是“出口”,必须为递归提供一个出口,否则你的内存就要溢出了,呵呵,memory overflow大家肯定都见过,都是从那时候过来的,呵呵。
代码中的递归:
核心代码
static void GetFiles(List<string> arr, string dir)
{
arr.AddRange(Directory.GetFiles(dir));
var subDir = Directory.GetDirectories(dir).ToList();
if (subDir != null && subDir.Count > 0)
subDir.ForEach(j =>
{
GetFiles(arr, j);
});
}
程序入口
static void Main(string[] args)
{
string path = "F:\\softmare\\Fiddler2汉化";
var obj = FileSync(path);
using (System.IO.StreamWriter srFile = new System.IO.StreamWriter(path + "\\filelist.txt"))
{
obj.ForEach(i =>
{
srFile.WriteLine(i);
});
}
Console.WriteLine("填充完成");
Console.ReadKey();
}
结果如图:
让程序代码变得更有艺术感吧!
作者:仓储大叔,张占岭,
荣誉:微软MVP