在日常开发中,遇到一个开发问题,前端上传文件后,直接通过upload上传的,得到文件大小是byte类型,所以需要根据byte类型的值,将byte转换为GB/MB/KB,具体方法如下:
/// <summary>
/// byte转换为GB/MB/KB
/// </summary>
/// <param name="KSize"></param>
/// <returns></returns>
public Dictionary<string, double> ByteConversionGBMBKB(int KSize)
{
var dic = new Dictionary<string, double>();
int GB = 1024 * 1024 * 1024;//定义GB的计算常量
int MB = 1024 * 1024;//定义MB的计算常量
int KB = 1024;//定义KB的计算常量
if (KSize / GB >= 1)//如果当前Byte的值大于等于1GB
{
dic.Add("GB", Math.Round(KSize / (float)GB, 2)); //将其转换成GB
}
else if (KSize / MB >= 1)//如果当前Byte的值大于等于1MB
{
dic.Add("MB", Math.Round(KSize / (float)MB, 2)); //将其转换成MB
}
else if (KSize / KB >= 1)//如果当前Byte的值大于等于1KB
{
dic.Add("KB", Math.Round(KSize / (float)KB, 2)); //将其转换成KB
}
else
{
dic.Add("Byte", KSize); //显示Byte值
}
return dic;
}
这里的字典中: key为类型,value为文件大小。
顺便提一下,将字典解析出来的办法。
//调用方法
var dic = ByteConversionGBMBKB(88351870);
foreach (KeyValuePair<string, double> key in dic)
{
var filetype = key.Key;
var filesize = key.Value;
}