欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C#遞歸實(shí)現(xiàn)顯示文件夾及所有文件并計(jì)算其大小的方法

 更新時(shí)間:2014年08月20日 11:10:20   投稿:shichen2014  
這篇文章主要介紹了C#遞歸實(shí)現(xiàn)顯示文件夾及所有文件并計(jì)算其大小的方法,是遍歷算法中比較典型的一種應(yīng)用,有不錯(cuò)的學(xué)習(xí)借鑒價(jià)值,需要的朋友可以參考下

算法中遞歸的一個(gè)典型應(yīng)用就是遍歷目標(biāo)文件夾,并把該文件夾下的所有文件和文件夾打印或顯示出來(lái),還可以遞歸計(jì)算出目標(biāo)文件夾的總大小。本文即以實(shí)例形式展示了C#遞歸實(shí)現(xiàn)顯示目標(biāo)文件夾的所有文件和文件夾,并計(jì)算目標(biāo)文件夾的大小的方法。

具體實(shí)現(xiàn)代碼如下:

class Program
{
  static void Main(string[] args)
  {
    Console.WriteLine("輸入目標(biāo)文件夾");
    string path = Console.ReadLine();
    FindFoldersAndFiles(path);
    Console.WriteLine("\r\n");
    Console.WriteLine("目標(biāo)文件夾的總大小為:{0}個(gè)字節(jié)",GetDirectoryLength(path));
    Console.ReadKey();
  }
 
  //遞歸目標(biāo)文件夾中的所有文件和文件夾
  private static void FindFoldersAndFiles(string path)
  {
    Console.WriteLine("文件夾" + path);
    //遍歷目標(biāo)文件夾的所有文件
    foreach (string fileName in Directory.GetFiles(path))
    {
      Console.WriteLine("┣" + fileName);
    }
 
    //遍歷目標(biāo)文件夾的所有文件夾
    foreach (string directory in Directory.GetDirectories(path))
    {
      FindFoldersAndFiles(directory);
    }
  }
 
  //遞歸計(jì)算文件夾大小
  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;
  }
}

如上圖所示,即為本文實(shí)例在遍歷目標(biāo)文件夾時(shí),使用遞歸顯示目標(biāo)文件夾下所有文件夾和文件,并使用遞歸計(jì)算目標(biāo)文件夾的總大小。

希望對(duì)大家學(xué)習(xí)C#的算法有一定幫助。

相關(guān)文章

  • C# 獲取指定QQ頭像繪制圓形頭像框GDI(Graphics)的方法

    C# 獲取指定QQ頭像繪制圓形頭像框GDI(Graphics)的方法

    某論壇的評(píng)論區(qū)模塊,發(fā)現(xiàn)這功能很不錯(cuò),琢磨了一晚上做了大致一樣的,用來(lái)當(dāng)做 注冊(cè)模塊 的頭像綁定功能,下面通過(guò)實(shí)例代碼給大家介紹下C# 獲取指定QQ頭像繪制圓形頭像框GDI(Graphics)的方法,感興趣的朋友一起看看吧
    2021-11-11
  • 詳解C#中的string與String

    詳解C#中的string與String

    本篇文章主要對(duì)jC#中的小寫(xiě)string與大寫(xiě)String進(jìn)行詳細(xì)介紹,相信對(duì)大家學(xué)習(xí)會(huì)有很好的幫助,需要的朋友一起來(lái)看下吧
    2016-12-12
  • C# 關(guān)于LoadLibrary的疑問(wèn)詳解

    C# 關(guān)于LoadLibrary的疑問(wèn)詳解

    這篇文章主要介紹了C# 關(guān)于LoadLibrary的疑問(wèn)詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • 利用C#實(shí)現(xiàn)獲取當(dāng)前設(shè)備硬件信息

    利用C#實(shí)現(xiàn)獲取當(dāng)前設(shè)備硬件信息

    這篇文章主要為大家詳細(xì)介紹了如何利用C#實(shí)現(xiàn)獲取當(dāng)前設(shè)備硬件信息的功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起了解一下
    2023-03-03
  • C#基礎(chǔ)語(yǔ)法:方法參數(shù)詳解

    C#基礎(chǔ)語(yǔ)法:方法參數(shù)詳解

    這篇文章主要介紹了C#基礎(chǔ)語(yǔ)法:方法參數(shù)詳解,本文講解了值參數(shù)、引用參數(shù)、輸出參數(shù)、參數(shù)數(shù)組等參數(shù)類(lèi)型,并分別給出代碼實(shí)例,需要的朋友可以參考下
    2015-06-06
  • C#插入法排序算法實(shí)例分析

    C#插入法排序算法實(shí)例分析

    這篇文章主要介紹了C#插入法排序算法,實(shí)例分析了C#排序算法的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-04-04
  • C#匹配中文字符串的4種正則表達(dá)式分享

    C#匹配中文字符串的4種正則表達(dá)式分享

    這篇文章主要介紹了C#匹配中文字符串的4種正則表達(dá)式分享,本文介紹了4種形式下的中文字符串匹配正則,需要的朋友可以參考下
    2014-08-08
  • C#事件用法實(shí)例淺析

    C#事件用法實(shí)例淺析

    這篇文章主要介紹了C#事件用法,以實(shí)例形式分析了C#中事件的定義、觸發(fā)及處理相關(guān)技巧,需要的朋友可以參考下
    2015-05-05
  • 淺談C#基礎(chǔ)之類(lèi)的訪問(wèn)修飾符

    淺談C#基礎(chǔ)之類(lèi)的訪問(wèn)修飾符

    淺談C#基礎(chǔ)之類(lèi)的訪問(wèn)修飾符,需要的朋友可以參考一下
    2013-03-03
  • C#中的多態(tài)深入理解

    C#中的多態(tài)深入理解

    如果面試時(shí)主考官要求你用一句話來(lái)描述多態(tài),盡可能的精煉,你會(huì)怎么回答?當(dāng)然答案有很多,每個(gè)人的理解和表達(dá)不盡相同,但我比較趨向這樣描述:通過(guò)繼承實(shí)現(xiàn)的不同對(duì)象調(diào)用相同的方法,表現(xiàn)出不同的行為,稱(chēng)之為多態(tài)
    2014-01-01

最新評(píng)論