程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#遞歸完成顯示文件夾及一切文件並盤算其年夜小的辦法

C#遞歸完成顯示文件夾及一切文件並盤算其年夜小的辦法

編輯:C#入門知識

C#遞歸完成顯示文件夾及一切文件並盤算其年夜小的辦法。本站提示廣大學習愛好者:(C#遞歸完成顯示文件夾及一切文件並盤算其年夜小的辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是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;
  }
}

如上圖所示,即為本文實例在遍歷目的文件夾時,應用遞歸顯示目的文件夾下一切文件夾和文件,並應用遞歸盤算目的文件夾的總年夜小。

願望對年夜家進修C#的算法有必定贊助。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved