当前位置: 移动技术网 > IT编程>开发语言>c# > C#检测移动硬盘并获取移动硬盘盘符的方法

C#检测移动硬盘并获取移动硬盘盘符的方法

2019年07月18日  | 移动技术网IT编程  | 我要评论

网上找了很久关于c#检测移动硬盘并获取盘符的代码但没能找到,所以只能自己解决了

c#获取所有硬盘

var arr = driveinfo.getdrives();

得出的所有磁盘,发现对于移动硬盘,drivetype 不是 removable 类型,而是 fixed 枚举类型。

c#检测移动硬盘,网上找了很久,没有现成正确的代码,只有自己想办法了。

代码如下:

public static list<string> getlistdisk()
    {
      list<string> lstdisk = new list<string>();
      managementclass mgtcls = new managementclass("win32_diskdrive");
      var disks = mgtcls.getinstances();
      foreach (managementobject mo in disks)
      {
        //if (mo.properties["interfacetype"].value.tostring() != "scsi" 
        //  && mo.properties["interfacetype"].value.tostring() != "usb"
        //  )
        //  continue;

        if (mo.properties["mediatype"].value == null ||
          mo.properties["mediatype"].value.tostring() != "external hard disk media")
        {
          continue;
        }

        //foreach (var prop in mo.properties)
        //{
        //  console.writeline(prop.name + "\t" + prop.value);
        //}

        foreach (managementobject diskpartition in mo.getrelated("win32_diskpartition"))
        {
          foreach (managementbaseobject disk in diskpartition.getrelated("win32_logicaldisk"))
          {
            lstdisk.add(disk.properties["name"].value.tostring());
          }
        }

        //console.writeline("-------------------------------------------------------------------------------------------");
      }
      return lstdisk;
    }

此代码是通过找 win32_diskdrive,win32_diskpartition,win32_logicaldisk 对应的属性值的规律, 三个之间的关系 得出 移动硬盘的盘符的。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网