有很多代码块可以返回兆字节中的硬盘大小。 但我有一个简单的问题。硬盘驱动器的厂房大小 - C#
您购买了256 GB硬盘,但这些方法返回例如234 GB。 我知道工厂大小和确切大小之间存在差异。但我怎样才能获得工厂规模?任何类别或方法?或者我应该只使用switch case
或if else
并自己做?
ManagementClass mc = new ManagementClass("Win32_DiskDrive");
double MemSize = 0;
foreach (ManagementObject mo in mc.GetInstances())
{
if (mo["InterfaceType"].ToString() == "IDE")
{
MemSize += Convert.ToInt64(mo["Size"].ToString());
break;
}
}
return GetSize(MemSize);
这是一个简单的方法,让使用wmi
和方法GetSize
将大小转换为GB硬盘大小。但它根本不会返回Factory Size。
getSize方法对应:
public string GetSize(double len)
{
string[] sizes = { "B", "KB", "MB", "GB", "TB" };
int order = 0;
while (len >= 1024 && order < sizes.Length - 1)
{
order++;
len = len/1024;
}
return String.Format("{0:0.##} {1}", Math.Floor(len), sizes[order]);
如果我除以1000的大小,它会更接近厂房面积,但没有确切的尺寸,例如256 GB将返回240 GB。
工厂大小通常(总是?)以1000的倍数而不是1024来测量,因为它看起来像一个比它大的大小。你最好坚持你在这里的东西。 – DavidG
@DavidG有没有办法修复返回工厂大小的GetSize方法? – Nofuzy
只需在您的GetSize方法中将1000替换为1000即可获得“工厂”大小。 –