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 對應的屬性值的規律, 三個之間的關系 得出 移動硬盤的盤符。

      其他相關鏈接:C#取硬盤、CPU、主板、網卡的序號 ManagementObjectSearcher


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM