zoukankan      html  css  js  c++  java
  • 递归实现显示目标文件夹的所有文件和文件夹,并计算目标文件夹的大小

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

      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("
    ");
    
      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

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

  • 相关阅读:
    Device Application Binding Manager---绑定管理
    Compile Options--编译选项
    [转] FPGA资料常用网站下载
    HAL层简介
    HAL层三类函数及其作用
    有关zstack的osal机制的理解
    bind与command---绑定之命令理解
    bind与command---绑定之命令理解-1
    zstack中事件加入到任务的方式
    Java常见错误列表
  • 原文地址:https://www.cnblogs.com/darrenji/p/3867763.html
Copyright © 2011-2022 走看看