如题

解决方案 »

  1.   

    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());
    }
      

  2.   

    System.IO.Directory.GetLogicalDrives();