文件大小友好显示类

复制代码
 public static string GetFriendlySizeStr(string srcPath)
        {
            var size = 0l;
            size = GetDirSizeInBytes(srcPath);
            var unit = 1024;
            var kb = unit;
            if(size<10*kb)
            {
                return string.Format("{0}Bytes", size);
            }
            var mb=kb* unit;
            if(size<10*mb)
            {
                return string.Format("{0}.{1}KB", size/kb,size%kb);
            }
            var gb =mb* unit;
            if(size<gb)
            {
                return string.Format("{0}.{1}MB", size/mb, size%mb/kb);
            }
            return string.Format("{0}GB {1}.{2}MB", size/gb, size/mb, size%mb/kb);
        }
        public static long GetDirSizeInMB(string srcPath)
        {
            return GetDirSizeInKB(srcPath)/1000;
        }
        public static long GetDirSizeInKB(string srcPath)
        {

            return GetDirSizeInBytes(srcPath) / 1000;
        }
        public static long GetDirSizeInBytes(string srcPath)
        {
            var dirSize = 0l;
            try
            {
                
                // 得到源目录的文件列表,该里面是包含文件以及目录路径的一个数组
                string[] fileList = System.IO.Directory.GetFileSystemEntries(srcPath);
                // 遍历所有的文件和目录
                foreach (string file in fileList)
                {
                    // 先当作目录处理如果存在这个目录就重新调用GetDirSize(string srcPath)
                    if (System.IO.Directory.Exists(file))
                    { dirSize+= GetDirSizeInBytes(file); }
                    else
                    {   dirSize += GetFileSizeInBytes(file);}
                }
            }
            catch (Exception e)
            {
            }
            return dirSize;
        }
        public static long GetFileSizeInBytes(string file)
        {
            System.IO.FileInfo fiArr = new System.IO.FileInfo(file);
            return fiArr.Length;
        }
复制代码
posted @   today4king  阅读(336)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架
点击右上角即可分享
微信分享提示
主题色彩