メガバイトでハードドライブサイズを返すコードが非常に多くあります。 しかし私は簡単な質問があります。ハードドライブの工場サイズ - 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);
これはGBにサイズを変換しますwmi
と方法GetSize
を使用してハードドライブのサイズを取得する簡単な方法です。しかし、工場サイズはまったく返されません。
の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ギガバイトの240ギガバイトを返しますため、それは、例えば、正確なサイズ工場サイズに近い方ではなくなります。
工場サイズは、それより大きなサイズのように見えるため、1024の代わりに1000の倍数で測定されることがよくあります。あなたはあなたがここにいるものに固執する方が良いです。 – DavidG
@DavidGは、工場サイズを返す 'GetSize'メソッドを修正する方法はありますか? – Nofuzy
GetSizeメソッドで1024を1000に置き換え、「工場」サイズを取得します。 –