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#的算法有必定贊助。