算法~将文件夹下所有文件输出到日志文件中(包括所有子文件夹下的)

概念:

算法文章,总是带给我们无穷的思考和兴趣,一个问题,多种解决方法,看你如何去思考它,对于标题所引出的问题,我觉得,使用递归是比较有效的方法,当然递归还有很多使用场合,如树型分类列表的操作等等。

注意:

使用递归时,初学者要特别注意的就是“出口”,必须为递归提供一个出口,否则你的内存就要溢出了,呵呵,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();
        }
复制代码

结果如图:

 

让程序代码变得更有艺术感吧!

 

posted @   张占岭  阅读(1308)  评论(1编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· Qt个人项目总结 —— MySQL数据库查询与断言
历史上的今天:
2013-01-22 Javascript基础与面向对象基础~Javascript中的语句如何被执行,如何改变执行顺序
2013-01-22 Javascript基础与面向对象基础~第一讲 啥叫编程,啥叫程序员
2013-01-22 将不确定变为确定~本机是否可以调试带域名的网站
2013-01-22 将不确定变为确定~为什么发布项目时用release环境更好些
2013-01-22 大叔推荐博客索引
2013-01-22 Javascript基础与面向对象基础~第二讲 Javascript中的变量及变量的类型
点击右上角即可分享
微信分享提示