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#的算法有一定幫助。
相關(guān)文章
C# 獲取指定QQ頭像繪制圓形頭像框GDI(Graphics)的方法
某論壇的評論區(qū)模塊,發(fā)現(xiàn)這功能很不錯,琢磨了一晚上做了大致一樣的,用來當做 注冊模塊 的頭像綁定功能,下面通過實例代碼給大家介紹下C# 獲取指定QQ頭像繪制圓形頭像框GDI(Graphics)的方法,感興趣的朋友一起看看吧2021-11-11

