C#如何返回目录大小
C#中没有直接获得目录大小的,只能统所有文件大小
当一个目录下有很多子目录,并且子目录下还有子目录
要得到这个文件夹的大小,就必须用递归了,一个不易理解的算法
当一个目录下有很多子目录,并且子目录下还有子目录
要得到这个文件夹的大小,就必须用递归了,一个不易理解的算法
public static long DirSize(DirectoryInfo d)
{
long Size = 0;
// 所有文件大小.
FileInfo[] fis = d.GetFiles();
foreach (FileInfo fi in fis)
{
Size += fi.Length;
}
// 遍历出当前目录的所有文件夹.
DirectoryInfo[] dis = d.GetDirectories();
foreach (DirectoryInfo di in dis)
{
Size += DirSize(di); //这就用到递归了,调用父方法,注意,这里并不是直接返回值,而是调用父返回来的
}
return(Size);
}
{
long Size = 0;
// 所有文件大小.
FileInfo[] fis = d.GetFiles();
foreach (FileInfo fi in fis)
{
Size += fi.Length;
}
// 遍历出当前目录的所有文件夹.
DirectoryInfo[] dis = d.GetDirectories();
foreach (DirectoryInfo di in dis)
{
Size += DirSize(di); //这就用到递归了,调用父方法,注意,这里并不是直接返回值,而是调用父返回来的
}
return(Size);
}
posted on 2005-09-03 18:16 GoKu'S Blog 阅读(1770) 评论(3) 编辑 收藏 举报