文件大小友好显示类
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;
}
{
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;
}
作者:today4king
出处:https://www.cnblogs.com/jinzhao/archive/2012/03/22/2411396.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 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 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架