请问用什么方法能得到目录的size,或者包含文件的文件夹的size?

解决方案 »

  1.   

    using System;
    using System.IO;public class ShowDirSize 
    {
    public static long DirSize(DirectoryInfo d) 

    long Size = 0; 
    // Add file sizes.
    FileInfo[] fis = d.GetFiles();
    foreach (FileInfo fi in fis) 

    Size += fi.Length; 
    }
    // Add subdirectory sizes.
    DirectoryInfo[] dis = d.GetDirectories();
    foreach (DirectoryInfo di in dis) 
    {
    Size += DirSize(di); 
    }
    return(Size); 
    }
    public static void Main(string[] args) 
    {
    if (args.Length != 1) 
    {
    Console.WriteLine("You must provide a directory argument at the command line."); 

    else 

    DirectoryInfo d = new DirectoryInfo(args[0]);
    Console.WriteLine("The size of {0} and its subdirectories is {1} bytes.", d, DirSize(d));
    }
    }
    }
      

  2.   

    也可以参考
    http://www.hubro.net/html_tbgSoq3DkQI.aspx
      

  3.   

    嗯,只能地跪。
    连Windows都是这么做的!
      

  4.   

    多谢。看来这样子只能够得到目录中所有文件的Size了。并没有加上目录本身的size,我想还是有蛮多差别的。如果有API高手看到了的话,敬请指教吧。
      

  5.   

    哈哈,新问题又出来了,在枚举目录的时候,遇到有些目录是不能访问的,那个什么SYSVOLUMN目录,如果绕过它的话,结果就更不准了。不是个难题,却是很麻烦的事。大家再顶顶吧。