zoukankan      html  css  js  c++  java
  • DotNet指定文件显示的尺寸

       在项目中开发中,有时候需要将文件的尺寸进行控制,例如需要将文件的尺寸指定为字节,TB等。现在提供一个方法,实现将指定文件的尺寸,

       提供:"字节", "KB", "MB", "GB", "TB"等尺寸的控制选项,一下方法代码可以在项目中直接使用,提高项目的开发效率。

     [System.ComponentModel.EditorBrowsable(System.ComponentModel.EditorBrowsableState.Never)]
        public static class FsLibValueExtract
        {
            readonly static string[] SizeDefinitions = { "字节", "KB", "MB", "GB", "TB" };
    
            /// <summary>
            /// 控制尺寸显示转换上限
            /// </summary>
            readonly static double SizeLevel = 0x400 * 0.9;
    
            /// <summary>
            /// 转换为尺寸显示方式
            /// </summary>
            /// <param name="size">大小</param>
            /// <returns>尺寸显示方式</returns>
            public static string ToSizeDescription(this double size)
            {
                return ToSizeDescription(size, 2);
            }
    
            /// <summary>
            /// 转换为尺寸显示方式
            /// </summary>
            /// <param name="size">大小</param>
            /// <param name="digits">小数位数</param>
            /// <returns>尺寸显示方式</returns>
            public static string ToSizeDescription(this double size, int digits)
            {
                var sizeDefine = 0;
    
                while (sizeDefine < SizeDefinitions.Length && size > SizeLevel)
                {
                    size /= 0x400;
                    sizeDefine++;
                }
    
                if (sizeDefine == 0) return size.ToString("#0") + " " + SizeDefinitions[sizeDefine];
                return size.ToString("#0." + string.Empty.PadLeft(digits, '#')) + " " + SizeDefinitions[sizeDefine];
            }
    
            /// <summary>
            /// 转换为尺寸显示方式
            /// </summary>
            /// <param name="size">大小</param>
            /// <returns>尺寸显示方式</returns>
            public static string ToSizeDescription(this ulong size)
            {
                return ((double)size).ToSizeDescription();
            }
    
            /// <summary>
            /// 转换为尺寸显示方式
            /// </summary>
            /// <param name="size">大小</param>
            /// <param name="digits">小数位数</param>
            /// <returns>尺寸显示方式</returns>
            public static string ToSizeDescription(this ulong size, int digits)
            {
                return ((double)size).ToSizeDescription(digits);
            }
    
            /// <summary>
            /// 转换为尺寸显示方式
            /// </summary>
            /// <param name="size">大小</param>
            /// <returns>尺寸显示方式</returns>
            public static string ToSizeDescription(this long size)
            {
                return ((double)size).ToSizeDescription();
            }
    
            /// <summary>
            /// 转换为尺寸显示方式
            /// </summary>
            /// <param name="size">大小</param>
            /// <param name="digits">小数位数</param>
            /// <returns>尺寸显示方式</returns>
            public static string ToSizeDescription(this long size, int digits)
            {
                return ((double)size).ToSizeDescription(digits);
            }
    
            /// <summary>
            /// 转换为尺寸显示方式
            /// </summary>
            /// <param name="size">大小</param>
            /// <returns>尺寸显示方式</returns>
            public static string ToSizeDescription(this int size)
            {
                return ((double)size).ToSizeDescription();
            }
    
            /// <summary>
            /// 转换为尺寸显示方式
            /// </summary>
            /// <param name="size">大小</param>
            /// <param name="digits">小数位数</param>
            /// <returns>尺寸显示方式</returns>
            public static string ToSizeDescription(this int size, int digits)
            {
                return ((double)size).ToSizeDescription(digits);
            }
        }

       以上只是文件尺寸进行一个算术运算,实现以上所述的功能。

  • 相关阅读:
    团队作业(二):项目选题
    今天准备正式开博了!专注于Silverlight!
    ORA01033:ORACLE initialization or shutdown in progress 错误的解决办法
    寻找正在应用和准备学习XNAor3D技术的志同道合的伙伴,大家能够互帮互助,共同探讨,最好能够组成较固定的小团队!
    TNS: could not resolve the connect identifier specified
    今天连接字符串出现了“ORA01008: 并非所有变量都已绑定”错误
    选择HttpHandler还是HttpModule?
    jQuerymenuaim.js
    MVP解读
    揭秘Amazon反应速度超快的下拉菜单
  • 原文地址:https://www.cnblogs.com/pengze0902/p/6007291.html
Copyright © 2011-2022 走看看