private void button1_Click(object sender, EventArgs e)
{
SelectQuery sq = new SelectQuery("select * from win32_logicaldisk");
System.Management.ManagementObjectSearcher mos = new ManagementObjectSearcher(sq);
this.listView1.Items.Clear();
foreach (System.Management.ManagementObject disk in mos.Get())
{
ListViewItem item = listView1.Items.Add(disk["Name"].ToString());
//Name表示设备的名称 //各属性的标识见联机的MSDN里,Win32 and COM Development下的WMI。
//如 http://msdn.microsoft.com/en-us/library/aa394173(VS.85).aspx
try
{
string strType = disk["DriveType"].ToString();
switch (strType) //类型
{
case "0":
item.SubItems.Add("未知设备");
break;
case "1": item.SubItems.Add("未分区");
break;
case "2":
item.SubItems.Add("可移动磁盘");
break;
case "3":
item.SubItems.Add("硬盘");
break;
case "4":
item.SubItems.Add("网络驱动器");
break;
case "5":
item.SubItems.Add("光驱");
break;
case "6":
item.SubItems.Add("内存磁盘");
break;
}
}
catch
{
item.SubItems.Add("设备未准备好");
}
try
{
item.SubItems.Add(GetSizeUseUnit(disk["Size"]));
}
catch
{
}
try //可移动设备如光驱在未插入光盘时处于不可用状态,需要捕捉异常。
{
item.SubItems.Add(GetSizeUseUnit(disk["FreeSpace"]));
}
catch
{
}
try
{
item.SubItems.Add(disk["VolumeSerialNumber"].ToString());
}
catch
{
}
}
}
private string GetSizeUseUnit(object sz)
{
ulong sz1 = Convert.ToUInt64(sz);
ulong mbsz=sz1 / (1024 * 1024*1024);
return mbsz.ToString();
}
{
SelectQuery sq = new SelectQuery("select * from win32_logicaldisk");
System.Management.ManagementObjectSearcher mos = new ManagementObjectSearcher(sq);
this.listView1.Items.Clear();
foreach (System.Management.ManagementObject disk in mos.Get())
{
ListViewItem item = listView1.Items.Add(disk["Name"].ToString());
//Name表示设备的名称 //各属性的标识见联机的MSDN里,Win32 and COM Development下的WMI。
//如 http://msdn.microsoft.com/en-us/library/aa394173(VS.85).aspx
try
{
string strType = disk["DriveType"].ToString();
switch (strType) //类型
{
case "0":
item.SubItems.Add("未知设备");
break;
case "1": item.SubItems.Add("未分区");
break;
case "2":
item.SubItems.Add("可移动磁盘");
break;
case "3":
item.SubItems.Add("硬盘");
break;
case "4":
item.SubItems.Add("网络驱动器");
break;
case "5":
item.SubItems.Add("光驱");
break;
case "6":
item.SubItems.Add("内存磁盘");
break;
}
}
catch
{
item.SubItems.Add("设备未准备好");
}
try
{
item.SubItems.Add(GetSizeUseUnit(disk["Size"]));
}
catch
{
}
try //可移动设备如光驱在未插入光盘时处于不可用状态,需要捕捉异常。
{
item.SubItems.Add(GetSizeUseUnit(disk["FreeSpace"]));
}
catch
{
}
try
{
item.SubItems.Add(disk["VolumeSerialNumber"].ToString());
}
catch
{
}
}
}
private string GetSizeUseUnit(object sz)
{
ulong sz1 = Convert.ToUInt64(sz);
ulong mbsz=sz1 / (1024 * 1024*1024);
return mbsz.ToString();
}