public class ConvertSize
{
/// <summary>
/// 获取
/// </summary>
/// <param name="b"></param>
/// <returns></returns>
public static string GetSize(double b)
{
String[] units = new String[] { "B", "KB", "MB", "GB", "TB", "PB" };
double mod = 1024.0;
int i = 0;
while (b >= mod)
{
b /= mod;
i++;
}
return Math.Round(b) + units[i];
}
/// <summary>
/// 将B转换为TB
/// </summary>
/// <param name="b"></param>
/// <returns></returns>
private static string GetTB(long b)
{
for (int i = 0; i < 4; i++)
{
b /= 1024;
}
return b + "TB";
}
/// <summary>
/// 将B转换为GB
/// </summary>
/// <param name="b"></param>
/// <returns></returns>
private static string GetGB(long b)
{
for (int i = 0; i < 3; i++)
{
b /= 1024;
}
return b + "GB";
}
/// <summary>
/// 将B转换为MB
/// </summary>
/// <param name="b"></param>
/// <returns></returns>
private static string GetMB(long b)
{
for (int i = 0; i < 2; i++)
{
b /= 1024;
}
return b + "MB";
}
}
第二种保留2位小数
/// <summary>
/// 格式化文件大小的C#方法
/// </summary>
/// <param name="filesize">文件的大小,传入的是一个bytes为单位的参数</param>
/// <returns>格式化后的值</returns>
public static string ForematFileSize(long filesize)
{
if (filesize < 0)
{
return "0 b";
}
else if (filesize >= 1024 * 1024 * 1024) //文件大小大于或等于1024MB
{
return string.Format("{0:0.00} GB", (double)filesize / (1024 * 1024 * 1024));
}
else if (filesize >= 1024 * 1024) //文件大小大于或等于1024KB
{
return string.Format("{0:0.00} MB", (double)filesize / (1024 * 1024));
}
else if (filesize >= 1024) //文件大小大于等于1024bytes
{
return string.Format("{0:0.00} KB", (double)filesize / 1024);
}
else
{
return string.Format("{0:0.00} b", filesize);
}
}