星空网 > 软件开发 > ASP.net

C#_IO操作_查询指定文件夹下的每个子文件夹占空间的大小

1.前言

 磁盘内存用掉太多,想查那些文件夹占的内存比较大,再找出没有用的文件去删除。

2.代码

static void Main(string[] args)    {      while (true)      {        //指定文件夹下的每个子文件夹占空间的大小        Console.WriteLine("--------------------查询指定路径下所有的子文件夹占空间大小-------------------");        Console.WriteLine("请输入要查询的路径:");        string Path = Console.ReadLine();        Dictionary<string,long> dic = new Dictionary<string, long>();        //路径是否存在        if (!Directory.Exists(Path))        {          Console.WriteLine("输入路径不存在,请输入正确的路径!");          Console.WriteLine("");        }        else        {          //定义一个DirectoryInfo对象          DirectoryInfo di = new DirectoryInfo(Path);          //通过GetFiles方法,获取di目录中的所有文件          foreach (FileInfo fi in di.GetFiles())          {            //把信息加入到字典中            dic.Add(fi.FullName, fi.Length);          }          //获取di中所有的文件夹,并存到一个新的对象数组中          DirectoryInfo[] dis = di.GetDirectories();          if (dis.Length > 0)            for (int i = 0; i < dis.Length; i++)            {              long length = GetDirectoryLength(dis[i].FullName);              dic.Add(dis[i].FullName, length);            }          //linq写法,对Dictionary按value排序          var dicSort = from objDic in dic orderby objDic.Value descending select objDic;          foreach (KeyValuePair<string,long> dic1 in dicSort)          {            //KB转为M 要/1024变K 再/1024变M            Console.WriteLine(string.Format("{0}:{1}{2}", dic1.Key.ToString(), Math.Round(Convert.ToDouble(dic1.Value) / 1024 / 1024, 2),"M"));          }        }      }    }        //指定文件夹占空间大小    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;    }

运行结果:

C#_IO操作_查询指定文件夹下的每个子文件夹占空间的大小




原标题:C#_IO操作_查询指定文件夹下的每个子文件夹占空间的大小

关键词:C#

C#
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

空运快递怎么寄:https://www.goluckyvip.com/tag/35226.html
空运利比亚:https://www.goluckyvip.com/tag/35227.html
空运美国fba:https://www.goluckyvip.com/tag/35228.html
空运墨西哥:https://www.goluckyvip.com/tag/35229.html
空运南非专线:https://www.goluckyvip.com/tag/35230.html
空运欧洲专线:https://www.goluckyvip.com/tag/35231.html
300万箱!ONE将投入250亿美元,用于扩大运力:https://www.kjdsnews.com/a/1836472.html
航运系统阻断,美港口无限期关闭!:https://www.kjdsnews.com/a/1836473.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流