源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

C#递归实现显示文件夹及所有文件并计算其大小的方法

  • 时间:2020-03-29 09:04 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C#递归实现显示文件夹及所有文件并计算其大小的方法
算法中递归的一个典型应用就是遍历目标文件夹,并把该文件夹下的所有文件和文件夹打印或显示出来,还可以递归计算出目标文件夹的总大小。本文即以实例形式展示了C#递归实现显示目标文件夹的所有文件和文件夹,并计算目标文件夹的大小的方法。 具体实现代码如下:
class Program
{
  static void Main(string[] args)
  {
    Console.WriteLine("输入目标文件夹");
    string path = Console.ReadLine();
    FindFoldersAndFiles(path);
    Console.WriteLine("\r\n");
    Console.WriteLine("目标文件夹的总大小为:{0}个字节",GetDirectoryLength(path));
    Console.ReadKey();
  }
 
  //递归目标文件夹中的所有文件和文件夹
  private static void FindFoldersAndFiles(string path)
  {
    Console.WriteLine("文件夹" + path);
    //遍历目标文件夹的所有文件
    foreach (string fileName in Directory.GetFiles(path))
    {
      Console.WriteLine("┣" + fileName);
    }
 
    //遍历目标文件夹的所有文件夹
    foreach (string directory in Directory.GetDirectories(path))
    {
      FindFoldersAndFiles(directory);
    }
  }
 
  //递归计算文件夹大小
  static long GetDirectoryLength(string path)
  {
    if (!Directory.Exists(path))
    {
      return 0;
    }
 
    long size = 0;
 
    //遍历指定路径下的所有文件
    DirectoryInfo di = new DirectoryInfo(path);
    foreach (FileInfo fi in di.GetFiles())
    {
      size += fi.Length;
    }
 
    //遍历指定路径下的所有文件夹
    DirectoryInfo[] dis = di.GetDirectories();
    if (dis.Length > 0)
    {
      for (int i = 0; i < dis.Length; i++)
      {
        size += GetDirectoryLength(dis[i].FullName);
      }
    }
 
    return size;
  }
}

[img]http://files.jb51.net/file_images/article/201408/2014820111336420.png?2014720111352[/img] 如上图所示,即为本文实例在遍历目标文件夹时,使用递归显示目标文件夹下所有文件夹和文件,并使用递归计算目标文件夹的总大小。 希望对大家学习C#的算法有一定帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部