C# 存储单位转化
来源:互联网 发布:应用架构 数据架构 编辑:程序博客网 时间:2024/05/16 21:22
<span style="white-space:pre"></span>//示例: long len = new System.IO.FileInfo("D:\\1.rar").Length; //获取文件字节大小 string str = "文件总大小: " + new FileLen(len).Str; //按字符串形式显示文件大小
/// <summary> /// 存储空间单位 /// </summary> public enum units { B, KB, MB, GB, TB, PB, EB, ZB, YB, BB, NB, DB }; /// <summary> /// 此类用于实现存储单位转化, /// 文件大小3种表示方式: 1.字节大小 2.字符串 3.数值+单位 /// </summary> public class FileLen { /// <summary> /// 文件字节大小 /// </summary> public long Len = 0; /// <summary> /// 文件大小,字符串形式 /// </summary> public string Str = "0 B"; /// <summary> /// 与存储单位对应的大小 /// </summary> public float Num = 0; /// <summary> /// 存储单位 /// </summary> public units Ext = units.B; /// <summary> /// 从字节大小构建 /// </summary> public FileLen(long len) { Len = len; int i = 0; Num = len; while (len >= 1024 && i <= (int)(units.DB)) { Num = len / 1024f; len = (int)Num; i++; } Ext = (units)i; Str = Num.ToString("F2") + " " + Ext.ToString(); } /// <summary> /// 从字符串构建, str形如"32.14 MB" /// </summary> public FileLen(string str) { string[] tmp = str.Split(' '); if (tmp.Length != 2) return; Str = str; Num = float.Parse(tmp[0]); Ext = (units)Enum.Parse(typeof(units), tmp[1]); Len = (long)Num; int i = (int)Ext; while (i>0) { Len *= 1024; i--; } } /// <summary> /// 从给定值和容量单位创建, num = 123.23f ext = "KB" /// </summary> public FileLen(float num, string ext) { Num = num; Ext = (units)Enum.Parse(typeof(units), ext); Str = num.ToString() + " " + ext.ToString(); Len = (long)Num; int i = (int)Ext; while (i > 0) { if ((long)(Len * 1024) <= 0) //long越界,保留最大值 Len = long.MaxValue; else Len *= 1024; i--; } } }
0 0
- C# 存储单位转化
- 存储单位
- 存储单位
- ABAP 单位转化
- Android单位区别与转化
- 单位转化工具类--UnitUtil
- 计算机存储单位
- 计算机存储单位
- 计算机存储单位
- 计算机的存储单位
- 存储中的几个单位
- 存储单位表
- 计算机存储单位
- 计算机存储单位
- 计算机存储单位
- 笔记整理-存储单位
- 计算机存储单位
- 计算机存储单位
- java 中如何处理大整数-java.BigInteger的使用
- vim 自动生成
- windows tomcat catalina.out 日志输出
- 阿里2015实习生笔试附加题第一个
- js-倒计时
- C# 存储单位转化
- 2014求职记(一)
- ZOj3605--- Find the Marble(概率dp)
- notifyDataSetChanged() 动态更新ListView
- libzdb源码学习之二:异常模块
- 第四章 基于对象的编程风格(什么是构造函数和析构函数)
- 右边的人
- hdu 1045 Fire Net
- Java 用socket实现网络通信