就象在windows中对文件夹右键获取到该文件夹的大小的信息一样

解决方案 »

  1.   

    string[] files = Directory.GetFiles("C:\\Excel");
    foreach (string s in files)
                    {                    double fLength= 0;                    FileInfo fi = new FileInfo(s);                   
                        fLength=fLength+fi.Length
                          
                        }
      

  2.   

    用C#实现获取文件夹大小的源代码相信很多刚接触到C#的朋友都曾幻想过写一些自己的小工具,一来玄一下,另外也能练练手.下面我就把两个C#实现的获取文件夹大小的源代码贴出来,一个是网上找来的,而且网上流传着N个变种.另外一个是我自己写出来的.希望能给朋友们一些帮助 
            当然了都需要引入System.IO这个命名空间        第一个:          public static long GetDirectoryLength(string dirPath)
             {
                //判断给定的路径是否存在,如果不存在则退出
                 if (!Directory.Exists(dirPath))
                     return 0;
                 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;
             }         第二个         //也是利用递归的思想,只不过是通过File类的Exits方法来判断         //所给路径中所对应的是否为文件        public static long FileSize(string filePath)
             {
                 long temp = 0;             //判断当前路径所指向的是否为文件
                 if (File.Exists(filePath) == false)
                 {
                     string[] str1 = Directory.GetFileSystemEntries(filePath);
                     foreach (string s1 in str1)
                     { 
                         temp += FileSize(s1);
                     }
                 }
                 else
                 {                //定义一个FileInfo对象,使之与filePath所指向的文件向关联,                 //以获取其大小
                     FileInfo fileInfo = new FileInfo(filePath);
                     return fileInfo.Length;
                 }
                 return temp;
             }        其实删除文件夹的思想与这个是一样的,设置要简单很多,只要简单的判断一下当前的是文件还是文件夹,如果是文件则删除.是文件夹则递归
     
      

  3.   

    放错位置了string[] files = Directory.GetFiles("C:\\Excel");
     double fLength= 0;foreach (string s in files)
                    {                   
                        FileInfo fi = new FileInfo(s);                   
                        fLength=fLength+fi.Length
                          
                        }