如何使用缩写获取人类可读的文件大小(字节).网

Example:

推荐答案

这可能不是最有效或最优化的方法,但如果您不熟悉对数数学,则更容易阅读,并且对于大多数情况应该足够快.

string[] sizes = { "B", "KB", "MB", "GB", "TB" };
double len = new FileInfo(filename).Length;
int order = 0;
while (len >= 1024 && order < sizes.Length - 1) {
    order++;
    len = len/1024;
}

// Adjust the format string to your preferences. For example "{0:0.#}{1}" would
// show a single decimal place, and no space.
string result = String.Format("{0:0.##} {1}", len, sizes[order]);

.net相关问答推荐

.NET Blazor-使用子组件中的处理程序方法进行双向数据绑定

如何在 Windows 窗体上显示 ClickOnce 版本号

我应该创建一个 DateRange 对象吗?

lock() 是否保证按请求的顺序获得?

使用 IIS Express 托管网站(临时)

使用 .NET 中的代码更改桌面墙纸

InternalsVisibleTo 属性不起作用

如何在 C# 中安全地将 System.Object 转换为bool?

析构函数、dispose 和 finalize 方法的区别

Visual Studio 类图不显示关系

ToLowerInvariant() 有什么问题?

如何获取命名空间中的所有类?

如何将整个字符串与正则表达式匹配?

安装带有恢复操作的 Windows 服务以重新启动

在不使用while循环的情况下找到最里面的异常?

ValueTypes 如何从 Object (ReferenceType) 派生并且仍然是 ValueTypes?

可以从 C# 调用 C++ 代码吗?

在 C#/.NET 中合并两个图像

.NET Remoting 真的被弃用了吗?

在foreach循环中修改列表的最佳方法是什么?