文档章节

DotNet指定文件显示的尺寸

彭泽0902
 彭泽0902
发布于 2016/11/24 18:47
字数 520
阅读 0
收藏 0

   在项目中开发中,有时候需要将文件的尺寸进行控制,例如需要将文件的尺寸指定为字节,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);
        }
    }

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

© 著作权归作者所有

共有 人打赏支持
彭泽0902
粉丝 0
博文 44
码字总数 57771
作品 0
武汉
高级程序员
私信 提问
dotnet core如何编译exe

dotnet core 有一个转变,他用dll格式来代替exe作为通用执行格式,然后要命令行dotnet yourApp.dll 来运行程序。为了提高逼格,双击可以运行,可以采用以下方案: 方案一 用bat文件 可以编写...

诺贝尔
08/23
0
0
『.NET Core CLI工具文档』(十一)dotnet-test

说明:本文是个人翻译文章,由于个人水平有限,有不对的地方请大家帮忙更正。 原文:dotnet-test 翻译:dotnet-test 名称 - 使用配置的测试运行器运行单元测试 概要 `dotnet test [--config...

Seay
2016/08/01
0
0
.net core EF 命令

http://www.bsjobjob.com 璧山人才网,璧山招聘网 https://docs.microsoft.com/zh-cn/ef/core/what-is-new/ef-core-2.0 ef 命令 https://github.com/aspnet/EntityFrameworkCore 开源地址 .n......

phantasy
2017/06/29
0
0
『.NET Core CLI工具文档』(六)dotnet 命令

说明:本文是个人翻译文章,由于个人水平有限,有不对的地方请大家帮忙更正。 原文:dotnet command 翻译:dotnet 命令 名称 dotnet -- 运行命令行命令的一般驱动程序 概要 描述 是命令行界面...

Seay
2016/07/27
0
0
vs2017 编码约定——.editorconfig文件

源码来自:https://docs.microsoft.com/en-us/visualstudio/ide/editorconfig-code-style-settings-reference EditorConfig Visual Studio code style preferences - VS2017中的EditorConfi......

QQZZFT
07/05
0
0

没有更多内容

加载失败,请刷新页面

加载更多

网易免费企业邮箱配置客户端

网易免费企业邮箱客户端(pop、imap、smtp)权限默认开启,对应服务器地址为: 发件服务器: SMTP:smtp.ym.163.com 默认端口为:25 (如勾选ssl安全链接,端口号为994) 收件服务器: POP3...

柴高八斗之父
4分钟前
0
0
Hanlp在ubuntu中的使用方法介绍

HanLP的一个很大的好处是离线开源工具包,换而言之,它不仅提供免费的代码免费下载,而且将辛苦收集的词典也对外公开啦,此诚乃一大无私之举.我在安装的时候,主要参照这份博客: blog.csd...

左手的倒影
7分钟前
0
0
软件架构的案例(架构学习九)

阿里 liunx+php+apache+mysql(淘宝网成立)->oracle(淘宝旺旺、支付宝)->java1.0(EJB、Mysql)->java2.0(Spring、JBoss、)->java3.0->分布式时代...

zzx10
7分钟前
1
0
用9种办法解决 JS 闭包经典面试题之 for 循环取 i

闭包 正确的说,应该是指一个闭包域,每当声明了一个函数,它就产生了一个闭包域(可以解释为每个函数都有自己的函数栈),每个闭包域(Function 对象)都有一个 function scope(不是属性),function ...

Jack088
10分钟前
0
0
Yearning基于Inception的开源SQL审核平台

基础环境: python3 nodejs vuejs mysql python-ldap pymysql mysql 新建数据库 create database Yearning DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; Navicat导入初始化数据 : ......

以谁为师
27分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部