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