using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Management;
namespace GetDriveSize
{
class Program
{
static void Main(string[] args)
{
ManagementClass managementClass = new ManagementClass("Win32_DiskDrive");
ManagementObjectCollection diskDrives = managementClass.GetInstances();
foreach (var disk in diskDrives)
{
UInt64 size = UInt64.Parse(disk["Size"].ToString());
string[] units = new string[] { "Bytes", "KBytes", "MBytes", "GBytes" };
int unitsLevel = 3;
while (unitsLevel > 0 && size / (UInt64)Math.Pow(1024, unitsLevel) == 0)
{
unitsLevel--;
}
size /= (UInt64)Math.Pow(1024, unitsLevel);
Console.WriteLine("制造商的模型编号:{0}\t磁盘驱动器大小:{1}{2}\t磁盘序列号:{3}", disk["Model"], size, units[unitsLevel], disk["Serialnumber"]);
}
}
}
}