zoukankan      html  css  js  c++  java
  • 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 + "	" + 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 对应的属性值的规律, 三个之间的关系 得出 移动硬盘的盘符。

          其他相关链接:C#取硬盘、CPU、主板、网卡的序号 ManagementObjectSearcher

  • 相关阅读:
    redis问题排查
    javassist介绍
    Idea创建父子工程
    sentry的配置
    Redis的基本操作以及info命令
    es~日期类型需要注意的
    jboss~静态文件路由和自定义日志
    java~RMI引起的log4j漏洞
    链路跟踪~对接阿里ARMS
    navicat~导出数据库密码
  • 原文地址:https://www.cnblogs.com/lztkdr/p/CSharp_External_Hard_Disk.html
Copyright © 2011-2022 走看看