欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2023-12-16 16:28:58
网上找了很久关于c#检测移动硬盘并获取盘符的代码但没能找到,所以只能自己解决了 c#获取所有硬盘 var arr = driveinfo.getdrives();...

网上找了很久关于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 对应的属性值的规律, 三个之间的关系 得出 移动硬盘的盘符的。

上一篇:

下一篇: