所以我们都知道以下代码将返回long:
DriveInfo myDrive = new DriveInfo("C:\\");
long size = myDrive.TotalSize;
Console.WriteLine("Drive Size is: {0}", size);
输出将是这样的:
云端硬盘大小为:114203439104
所以我认为这意味着该驱动器的总大小约为114千兆字节。
但是,我希望将其转换为以下格式:
114.2 MB
有没有一种非常快速简便的方法呢?
提前致谢。
答案 0 :(得分:2)
我认为这是114 GB但是嘿。无论如何,我会为此编写一个辅助函数。有点像...
public string GetSize(long size)
{
string postfix = "Bytes";
long result = size;
if(size >= 1073741824)//more than 1 GB
{
result = size / 1073741824;
postfix = "GB";
}
else if(size >= 1048576)//more that 1 MB
{
result = size / 1048576;
postfix = "MB";
}
else if(size >= 1024)//more that 1 KB
{
result = size / 1024;
postfix = "KB";
}
return result.ToString("F1") + " " + postfix;
}
编辑:正如所指出的,我完全忘了处理大小(修改代码)
答案 1 :(得分:1)
这是我正在使用的片段:
public static string FormatBytesToHumanReadable(long bytes)
{
if (bytes > 1073741824)
return Math.Ceiling(bytes / 1073741824M).ToString("#,### GB");
else if (bytes > 1048576)
return Math.Ceiling(bytes / 1048576M).ToString("#,### MB");
else if (bytes >= 1)
return Math.Ceiling(bytes / 1024M).ToString("#,### KB");
else if (bytes < 0)
return "";
else
return bytes.ToString("#,### B");
}
答案 2 :(得分:0)
是。重复除以1024。
var kb = size/1024;
var mb = kb/1024;
答案 3 :(得分:0)
我只想补充一点,如果你在讨论驱动器的大小而不是其他东西的大小,请注意HDD / SDD硬件供应商使用1000代表KB,而不是1024.这就是为什么标记为400Gb的硬盘将在大多数程序中显示为372.53GB。请务必向用户提供他期望的信息。