递归的一个典型应用就是遍历目标文件夹,把该文件夹下的所有文件和文件夹打印或显示出来,还可以递归计算目标文件夹的总大小。

  1:     class Program
  2:     {
  3:         static void Main(string[] args)
  4:         {
  5:             Console.WriteLine("输入目标文件夹");
  6:             string path = Console.ReadLine();
  7:             FindFoldersAndFiles(path);
  8:             Console.WriteLine("\r\n");
  9:             Console.WriteLine("目标文件夹的总大小为:{0}个字节",GetDirectoryLength(path));
 10:             Console.ReadKey();
 11:         }
 12:
 13:         //递归目标文件夹中的所有文件和文件夹
 14:         private static void FindFoldersAndFiles(string path)
 15:         {
 16:             Console.WriteLine("文件夹" + path);
 17:             //遍历目标文件夹的所有文件
 18:             foreach (string fileName in Directory.GetFiles(path))
 19:             {
 20:                 Console.WriteLine("┣" + fileName);
 21:             }
 22:
 23:             //遍历目标文件夹的所有文件夹
 24:             foreach (string directory in Directory.GetDirectories(path))
 25:             {
 26:                 FindFoldersAndFiles(directory);
 27:             }
 28:         }
 29:
 30:         //递归计算文件夹大小
 31:         static long GetDirectoryLength(string path)
 32:         {
 33:             if (!Directory.Exists(path))
 34:             {
 35:                 return 0;
 36:             }
 37:
 38:             long size = 0;
 39:
 40:             //遍历指定路径下的所有文件
 41:             DirectoryInfo di = new DirectoryInfo(path);
 42:             foreach (FileInfo fi in di.GetFiles())
 43:             {
 44:                 size += fi.Length;
 45:             }
 46:
 47:             //遍历指定路径下的所有文件夹
 48:             DirectoryInfo[] dis = di.GetDirectories();
 49:             if (dis.Length > 0)
 50:             {
 51:                 for (int i = 0; i < dis.Length; i++)
 52:                 {
 53:                     size += GetDirectoryLength(dis[i].FullName);
 54:                 }
 55:             }
 56:
 57:             return size;
 58:         }
 59:     }
 60:
 61: 

以上,在遍历目标文件夹时,使用递归显示目标文件夹下所有文件夹和文件,并使用递归计算目标文件夹的总大小。

递归实现显示目标文件夹的所有文件和文件夹,并计算目标文件夹的大小相关推荐

  1. linux 反汇编目标文件,用于查看目标文件或可执行文件的组成信息的命令:objdump命令...

    1.功能简介 objdump 命令是 GNU Binutils 二进制工具集的一员,用于查看目标文件或可执行文件的组成信息,以可读的形式打印二进制文件的内容. 2.命令格式 objdump[OPTIO ...

  2. 渗透测试常用文件传输方法-Windows篇(如何向Windows服务器中上传文件?) (゚益゚メ) 渗透测试

    文章目录 文件传输 certutil BitsAdmin Powershell SCP Windows文件共享 文件传输 文件传输在渗透测试中主要用于将攻击载荷上传到目标主机或者获取目标资产使用. 下 ...

  3. GCC编译器原理(二)------编译原理一:目标文件

    一.目标文件 在 UNIX® 和 Linux® 中,任何事物都是文件.UNIX 和 Linux 编程实际上是编写处理各种文件的代码.系统由许多类型的文件组成,但目标文件具有一种特殊的设计,提供了灵活和 ...

  4. linux基本命令之文件浏览(cat,more,less,tail,head),文件操作命令(cp,mv,rm,find)

    linux文件浏览,文件操作命令 文件管理之文件浏览命令 1.cat命令:显示文本文件所有内容 格式:cat 文件名 适用场景:适合只有少量数据的文件,例如只有几行内容的可以使用此命令. 2.more ...

  5. 程序员的自我修养--链接、装载与库笔记:目标文件里有什么

    编译器编译源代码后生成的文件叫做目标文件.目标文件从结构上讲,它是已经编译后的可执行文件格式,只是还没有经过链接的过程,其中可能有些符号或有些地址还没有被调整.其实它本身就是按照可执行文件格式存储的, ...

  6. 程序员的自我修养三目标文件里有什么

    编译器编译源代码后生成的文件叫做目标文件. 目标文件从结构上讲,它是已经编译后的可执行文件格式,只是没有经过链接的过程. 3.1目标文件的格式 现在PC平台流行的是可执行文件格式,主要是win下的PE ...

  7. C语言从0到1·源程序,源文件,目标文件之间的关系

    你能学到什么 一.C程序的基本结构 二.运行过程 三.注意事项 一.C程序的基本结构 #include <stdio.h>//头文件 int main(void)//main函数,c程序的 ...

  8. 目标文件里面到底有什么(2)?

    真正了不起的程序员对自己的程序的每一个字节都了如指掌! 前面对于目标文件只是做了概念上的阐述,如果不彻底深入目标文件的具体细节,这样的分析就是泛泛而谈没有意义,也没有深入的理解.就象知道TCP/IP协 ...

  9. 目标指令c语言是什么,什么是C中的目标文件?

    有3种目标文件. 可重定位目标文件 以可以在链接时与其他可重定位目标文件组合的形式包含机器代码,以形成可执行目标文件. 如果您a.c有源文件,要使用GCC创建其目标文件,应运行: gcc a.c -c ...

最新文章

  1. spring 源码 找不到 taskprovider_一步一步构建Spring5源码
  2. 2021年春季学期-信号与系统-第十五次作业参考答案-第二小题参考答案
  3. java得出两个日期之间所有日期
  4. php删除excel文件,php操作excel文件的方法小结
  5. exfat linux 驱动_(实例)Linux 内核添加exfat驱动
  6. 桌面图标摆放图案_用图标制作醒目的图案
  7. c语言作业的分析,C语言作业分析.doc
  8. 一些大厂的css reset 代码
  9. C# 特性(Attribute)学习
  10. cocoaPods 创建自己的依赖库
  11. java jsession,JSession
  12. cad工具箱详细讲解_CAD贱人工具箱的使用教程详解
  13. Rax初学者使用心得
  14. Python练手项目:计算机自动还原魔方(3)还原两层
  15. 计算机桌面计划,电脑桌面日程安排软件
  16. 《吊打面试官》系列-Redis基础
  17. matlab中idfs,【 MATLAB 】离散傅里叶变换(DFT)以及逆变换(IDFT)的MATLAB实现
  18. mysql的结构化编程_月光软件站 - 编程文档 - 其他语言 - 结构化子查询:在mysql4.1中的应用...
  19. Log - Log日志入参
  20. 网站有反爬机制就爬不了数据?那是你不会【反】反爬!道高一尺魔高一丈啊!

热门文章

  1. ASP.NET Core 1.0 使用 MySQL for EF Core 1.0 (.NET Core 1.0)
  2. iOS网络开发中的同步、异步和请求队列
  3. restful接口定义的几种方式
  4. Nervos Report (2018年12月)
  5. (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  6. 【面试 spring】【第七篇】spring的问题
  7. Hadoop: MapReduce2多个job串行处理
  8. 《公司的力量》读书笔记
  9. 20145129 《Java程序设计》第6周学习总结
  10. iSCSI的基础实验