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()); }
{
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++;
}
}
...
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());
}
string[] astrDrives = Directory.GetLogicalDrives();
foreach遍历一下这个数组就行了