好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

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

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

原文链接:http://HdhCmsTestcnblogs测试数据/lztkdr/p/CSharp_External_Hard_Disk.html

dy("nrwz");

查看更多关于C#检测移动硬盘并获取移动硬盘盘符的方法的详细内容...

  阅读:48次