C#获取文件和文件夹大小
代码如下:
/// <summary> /// 获取文件夹大小 /// </summary> /// <param name="dirPath"></param> /// <returns></returns> static long GetDirectorySize(string dirPath) { if (!System.IO.Directory.Exists(dirPath)) return 0; long len = 0; DirectoryInfo di = new DirectoryInfo(dirPath); //获取di目录中所有文件的大小 foreach (FileInfo item in di.GetFiles()) { len += item.Length; } //获取di目录中所有的文件夹,并保存到一个数组中,以进行递归 DirectoryInfo[] dis = di.GetDirectories(); if (dis.Length > 0) { for (int i = 0; i < dis.Length; i++) { len += GetDirectorySize(dis[i].FullName);//递归dis.Length个文件夹,得到每隔dis[i] 下面所有文件的大小 } } return len; } /// <summary> /// 获取文件大小 /// </summary> /// <param name="filePath"></param> /// <returns></returns> static long GetFileSize(string filePath) { long temp = 0; //判断当前路径是否指向某个文件 if (!File.Exists(filePath)) { string[] strs = Directory.GetFileSystemEntries(filePath); foreach (string item in strs) { temp += GetFileSize(item); } } else { FileInfo fileInfo = new FileInfo(filePath); return fileInfo.Length; } return temp; }