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