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

概念:

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

注意:

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

结果如图:

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

时间: 2024-12-05 06:22:49

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

Ubuntu中更改所有子文件和子目录所有者权限

转自:http://www.linuxidc.com/Linux/2015-03/114695.htm Ubuntu中有两个修改命令可以用到,「change mode」&「change owner」 即chmod以及chown,其中可以用递归参数-R来实现更改所有子文件和子目录的权限. 1.利用chmod修改权限: 对Document/目录下的所有子文件与子目录执行相同的权限变更: chmod -R 700 Document/ -R参数是递归 处理目录下的所有文件以及子文件夹 700是变更后的权

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

转载:http://www.cnblogs.com/lori/p/3529936.html 代码: 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) sub

Unity中所有特殊的文件夹

1. 隐藏文件夹以.开头的文件夹会被Unity忽略.在这种文件夹中的资源不会被导入,脚本不会被编译.也不会出现在Project视图中.2. Standard Assets在这个文件夹中的脚本最先被编译.这个文件夹中的脚本会被导出到Assembly-CSharp-firstpass, Assembly-UnityScript-firstpass 或 Assembly-Boo-firstpass项目中,依语言而定. 参考http://docs.unity3d.com/Documentation/Ma

用java实现输出英文小说飘中出现次数最多的前N个单词(附:使用文件读写)

本文参考于:https://blog.csdn.net/u014204432/article/details/40348839 一.题目 输出单个文件(<飘> 英文版)中的前 N 个最常出现的英语单词,并将结果输入到文本文件中. 二.程序设计思路 1.首先将英文小说飘文件内容用文件读写方式读入StringBuffer中,然后一行一行读取并去掉句子和单词 间空格然后将StringBuffer转换成String,然后再将所有字符转化成小写字符,然后再将句子分割成单词并 存入字符数组. 2.随后遍历

041:模版中加载静态文件详解

加载静态文件: 在一个网页中,不仅仅只有一个 html 骨架,还需要 css 样式文件, js 执行文件以及一些图片等.因此在 DTL 中加载静态文件是一个必须要解决的问题.在 DTL 中,使用 static 标签来加载静态文件.要使用 static 标签,首先需要 {% load static %} .加载静态文件的步骤如下: 1. 首先确保 django.contrib.staticfiles 已经添加到 sttings.INSTALLED_APPS 中. 2. 确保在 settings.p

Linux系统中修改/etc/profile文件的方法

在Linux系统中etc/profile文件一般是不能更改的,想要更改etc/profile文件就要用一些特殊的技巧进行Linux文件修改.本文就来介绍一下Linux系统中修改/etc/profile文件的方法: etc/profile文件是只读的,直接用vi或gedit打开修改后是无法保存的.要修改profile,需要取得root权限,(使用gedit编辑) $sudo gedit /etc/profile 或者 $sudo -s $gedit /etc/profile 这样打开profile

Delphi编程中软件调用EXE文件与DLL文件的体会

一.定义 EXE文件,是完整的"Windows窗体应用程序"或"控制台应用程序",它能独立执行,也能被居主EXE调用.其内部是系列类或方法构成,执行时,全部载入内存. DLL文件,全称是Dynamic Link Libaray,即动态链接库,将程序(EXE)运行所需要的类或方法的实现放在dll文件中,它的类.方法不能直接被执行,必须由一个EXE文件调用载入内存,通过类.方法形式从内存中获取(执行). 二.相同 1.二者内部结构基本一致,都是由操作系统的类.特定语言(

shell获取目录下所有文件夹的名称并输出

获取指定目录/usr/下所有文件夹的名称并输出: shell代码: 1 #!/bin/bash 2 #方法一 3 dir=$(ls -l /usr/ |awk '/^d/ {print $NF}') 4 for i in $dir 5 do 6 echo $i 7 done 8 ####### 9 #方法二 10 for dir in $(ls /usr/) 11 do 12 [ -d $dir ] && echo $dir 13 done 14 ##方法三 15 16 ls -l /us

Ubuntu 16.04下使用gcc输出汇编的.0文件为可执行文件时出现:`_start&#39;被多次定义

错误如下: `_start'被多次定义 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o:(.text+0x0):第一次在此定义 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crt1.o:在函数‘_start’中: (.text+0x20):对‘main’未定义的引用 collect2: error: ld returned 1 exit sta