算法中遞歸的一個典型應用就是遍歷目標文件夾,并把該文件夾下的所有文件和文件夾打印或顯示出來,還可以遞歸計算出目標文件夾的總大小。本文即以實例形式展示了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#的算法有一定幫助。
新聞熱點
疑難解答