欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#实现获取文件夹大小的方法

程序员文章站 2022-10-25 19:03:12
本文实例讲述了c#实现获取文件夹大小的方法。分享给大家供大家参考。具体如下: 当然了,首先都需要引入system.io这个命名空间 第一个方法: public...

本文实例讲述了c#实现获取文件夹大小的方法。分享给大家供大家参考。具体如下:

当然了,首先都需要引入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;
}

其实删除文件夹的思想与这个是一样的,设置要简单很多,只要简单的判断一下当前的是文件还是文件夹,如果是文件则删除.是文件夹则递归

希望本文所述对大家的c#程序设计有所帮助。