C#获取指定文件夹空间大小

时间:2021-10-19 12:31:07
protectedvoid Page_Load(object sender, EventArgs e)
{
Response.Write(GetDirectoryLength(Server.MapPath(
"upload"))/(1024*1024)+"M");
}


publicstaticlong GetDirectoryLength(string dirPath)
{
//判断给定的路径是否存在,如果不存在则退出
if (!Directory.Exists(dirPath))
return0;
long len=0;

//定义一个DirectoryInfo对象
DirectoryInfo di=new DirectoryInfo(dirPath);

//通过GetFiles方法,获取di目录中的所有文件的大小
foreach (FileInfo fi in di.GetFiles())
{
len
+= fi.Length;
}

//获取di中所有的文件夹,并存到一个新的对象数组中,以进行递归
DirectoryInfo[] dis= di.GetDirectories();
if (dis.Length>0)
{
for (int i =0; i< dis.Length; i++)
{
len
+= GetDirectoryLength(dis[i].FullName);
}
}
return len;
}