C#遞歸實現(xiàn)顯示文件夾及所有文件并計算其大小的方法
更新時間:2014年08月20日 11:10:20 投稿:shichen2014
這篇文章主要介紹了C#遞歸實現(xiàn)顯示文件夾及所有文件并計算其大小的方法,是遍歷算法中比較典型的一種應用,有不錯的學習借鑒價值,需要的朋友可以參考下
算法中遞歸的一個典型應用就是遍歷目標文件夾,并把該文件夾下的所有文件和文件夾打印或顯示出來,還可以遞歸計算出目標文件夾的總大小。本文即以實例形式展示了C#遞歸實現(xiàn)顯示目標文件夾的所有文件和文件夾,并計算目標文件夾的大小的方法。
具體實現(xiàn)代碼如下:
class Program { static void Main(string[] args) { Console.WriteLine("輸入目標文件夾"); string path = Console.ReadLine(); FindFoldersAndFiles(path); Console.WriteLine("\r\n"); Console.WriteLine("目標文件夾的總大小為:{0}個字節(jié)",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#的算法有一定幫助。
相關文章
C# 獲取指定QQ頭像繪制圓形頭像框GDI(Graphics)的方法
某論壇的評論區(qū)模塊,發(fā)現(xiàn)這功能很不錯,琢磨了一晚上做了大致一樣的,用來當做 注冊模塊 的頭像綁定功能,下面通過實例代碼給大家介紹下C# 獲取指定QQ頭像繪制圓形頭像框GDI(Graphics)的方法,感興趣的朋友一起看看吧2021-11-11