7、获取文件夹空间大小

前言:程序集 System.IO.FileSystem下面的Directory,并通过递归计算指定文件夹的空间大小,如有不对的地方,请多多指教

流程

先判断地址, 然后再对文件夹进行递归操作,其实就是不断的查看文件夹下的文件,并对文件大小进行累加;

代码

        static void Main(string[] args)
        {
             
            long rawLth = GetDirectoryLength(@"F:\data\audiovideo");
            long lenkb = length / 1024;  
            Console.WriteLine(rawLth .ToString());
            Console.WriteLine(lenkb.ToString()+"KB");
        }

        /// <summary>
        /// 220126 komla 对文件夹的操作
        /// </summary>
        /// <param name="Path"></param>
        /// <returns>文件夹大小,单位是字节</returns>
        public static long GetDirectoryLength(string Path)
        {
            //判断给定的路径是否存在,如果不存在则退出
            if (!Directory.Exists(Path))
                return 0;
            long len = 0;

            //定义一个DirectoryInfo对象
            DirectoryInfo dirInfo = new DirectoryInfo(Path);

            //通过GetFiles方法,获取dirInfo目录中的所有文件的大小
            foreach (FileInfo fi in dirInfo.GetFiles())
            {
                len += fi.Length;
            }

            //获取dirInfo中所有的文件夹,并存到一个新的对象数组中,以进行递归
            DirectoryInfo[] dirs = dirInfo.GetDirectories();
            if (dirs.Length > 0)
            {
                for (int i = 0; i < dirs.Length; i++)
                {
                    len += GetDirectoryLength(dirs[i].FullName);
                }
            }

            return len;
        }

GetDirectoryLength函数获取的文件夹大小是对文件夹下所有文件进行求和,其单位是字节,但我们一般看到的磁盘大小什么的都是以KB或G显示,因此对函数返回结果进行单位换算就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值