最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)文件夾,并把該文件夾下的所有文件和文件夾打印或顯示出來,還可以遞歸計(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#中常用的正則表達(dá)式實(shí)例

    C#中常用的正則表達(dá)式實(shí)例

    正則表達(dá)式在程序設(shè)計(jì)中有著重要的位置,它經(jīng)常被用于處理字符串信息,下面是C#中常用的正則表達(dá)式實(shí)例,感興趣的朋友一起看看吧
    2016-10-10
  • C#使用自定義的泛型節(jié)點(diǎn)類實(shí)現(xiàn)二叉樹類

    C#使用自定義的泛型節(jié)點(diǎn)類實(shí)現(xiàn)二叉樹類

    這篇文章主要為大家詳細(xì)介紹了C#如何使用自定義的泛型節(jié)點(diǎn)類 Node<T>實(shí)現(xiàn)二叉樹類BinaryTree<T>及其方法,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-03-03
  • C#中比較常用的DateTime結(jié)構(gòu)的使用方法

    C#中比較常用的DateTime結(jié)構(gòu)的使用方法

    這篇文章主要介紹了C#中比較常用的DateTime結(jié)構(gòu)的使用方法,需要的朋友可以參考下
    2015-11-11
  • C#中String與string的區(qū)別分析

    C#中String與string的區(qū)別分析

    這篇文章主要介紹了C#中String與string的區(qū)別,對(duì)于加深C#數(shù)據(jù)類型與類的理解有很好的參考借鑒價(jià)值,需要的朋友可以參考下
    2014-08-08
  • 基于C# wpf 實(shí)現(xiàn)Grid內(nèi)控件拖動(dòng)詳情

    基于C# wpf 實(shí)現(xiàn)Grid內(nèi)控件拖動(dòng)詳情

    這篇文章主要介紹了基于C# wpf 實(shí)現(xiàn)Grid內(nèi)控件拖動(dòng),有一些業(yè)務(wù)場景中我們需要拖動(dòng)控件,在Grid中就可以實(shí)現(xiàn)控件拖動(dòng),通過設(shè)置Margin屬性即可,下面文章我們來看看具體的實(shí)現(xiàn)內(nèi)容
    2021-11-11
  • C#利用Refit實(shí)現(xiàn)JWT自動(dòng)續(xù)期詳解

    C#利用Refit實(shí)現(xiàn)JWT自動(dòng)續(xù)期詳解

    Refit?是一個(gè)受到Square的Retrofit庫(Java)啟發(fā)的自動(dòng)類型安全REST庫,這篇文章主要為大家介紹了C#如何利用Refit實(shí)現(xiàn)JWT自動(dòng)續(xù)期,感興趣的可以了解下
    2023-08-08
  • c#保存窗口位置大小操作類(序列化和文件讀寫功能)

    c#保存窗口位置大小操作類(序列化和文件讀寫功能)

    這篇文章主要介紹了c#保存窗口位置大小操作類,其實(shí)就是把序列化和文件讀寫合到一塊,大家參考使用
    2013-11-11
  • C# cefSharep控件的使用詳情

    C# cefSharep控件的使用詳情

    本文主要介紹了C# cefSharep控件的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-01-01
  • 在C#中捕獲內(nèi)存不足異常

    在C#中捕獲內(nèi)存不足異常

    這篇文章主要介紹了在C#中捕獲內(nèi)存不足異常,下面文章內(nèi)容圍繞如何在C#中捕獲內(nèi)存不足異常的相關(guān)資料展開詳細(xì)內(nèi)容,具有一定的參考價(jià)值,需要的小伙伴可以參考一下,希望對(duì)你有所幫助
    2021-12-12
  • C#簡單生成縮略圖的方法

    C#簡單生成縮略圖的方法

    這篇文章主要介紹了C#簡單生成縮略圖的方法,涉及C#操作圖片的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-03-03

最新評(píng)論

景洪市| 锦屏县| 黄大仙区| 通河县| 达州市| 廉江市| 元朗区| 赤水市| 句容市| 青海省| 晋宁县| 新建县| 沙雅县| 土默特左旗| 鹤庆县| 盘山县| 蓬溪县| 沁阳市| 辽阳县| 钟祥市| 望谟县| 丰原市| 广南县| 周至县| 读书| 遂川县| 米易县| 白水县| 房产| 克山县| 巴林左旗| 九江县| 杭州市| 兴城市| 依安县| 出国| 峨山| 商都县| 留坝县| 綦江县| 诸暨市|