private void button1_Click(object sender, EventArgs e)
{
listView1.Items.Clear();
SelectQuery selectQuery = new SelectQuery("select * from win32_logicaldisk");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(selectQuery);
int i=0;
foreach (ManagementObject disk in searcher.Get()) {
//盘符
listView1.Items.Add(disk["Name"].ToString());
//卷标
try
{
listView1.Items[i].SubItems.Add(disk["VolumeName"].ToString());
}
catch
{
listView1.Items[i].SubItems.Add("设备未准备好");
}
//驱动器类型
string DriveType;
try
{
DriveType = disk["DriveType"].ToString();
switch (DriveType)
{
case "0":
listView1.Items[i].SubItems.Add("未知设备");
break;
case "1":
listView1.Items[i].SubItems.Add("未分区");
break;
case "2":
listView1.Items[i].SubItems.Add("可移动磁盘");
break;
case "3":
listView1.Items[i].SubItems.Add("硬盘");
break;
case "4":
listView1.Items[i].SubItems.Add("网络驱动器");
break;
case "5":
listView1.Items[i].SubItems.Add("光驱");
break;
case "6":
listView1.Items[i].SubItems.Add("内存磁盘");
break;
}
}
catch
{
listView1.Items[i].SubItems.Add("未知类型");
}
//容量
try
{
listView1.Items[i].SubItems.Add(GetSizeUseUnit(disk["Size"].ToString()));
}
catch
{
listView1.Items[i].SubItems.Add("设备未准备好");
}
//剩余空间
try
{
listView1.Items[i].SubItems.Add(GetSizeUseUnit(disk["FreeSpace"].ToString()));
}
catch
{
listView1.Items[i].SubItems.Add("设备未准备好");
}
i++;
}
}
先添加对System.Management的引用
using System.Management;
...
SelectQuery selectQuery = new SelectQuery("select * from win32_logicaldisk");
ManagementObjectSearcher searcher = new ManagementObjectSearcher(selectQuery);
int i = 0;
foreach (ManagementObject disk in searcher.Get())
{
//获取驱动器盘符
this.listBox1.Items.Add(disk["Name"].ToString());
}