GoKu'Blog

导航

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);  
    }

posted on 2005-09-03 18:16  GoKu'S Blog  阅读(1770)  评论(3编辑  收藏  举报