C#檢測移動硬盤并獲取移動硬盤盤符的方法
網(wǎng)上找了很久關(guān)于C#檢測移動硬盤并獲取盤符的代碼但沒能找到,所以只能自己解決了
C#獲取所有硬盤
var arr = DriveInfo.GetDrives();
得出的所有磁盤,發(fā)現(xiàn)對于移動硬盤,DriveType 不是 Removable 類型,而是 Fixed 枚舉類型。
C#檢測移動硬盤,網(wǎng)上找了很久,沒有現(xiàn)成正確的代碼,只有自己想辦法了。
代碼如下:
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 對應的屬性值的規(guī)律, 三個之間的關(guān)系 得出 移動硬盤的盤符的。
相關(guān)文章
C#函數(shù)式程序設計之用閉包封裝數(shù)據(jù)的實現(xiàn)代碼
如果一個程序設計語言能夠用高階函數(shù)解決問題,則意味著數(shù)據(jù)作用域問題已十分突出。當函數(shù)可以當成參數(shù)和返回值在函數(shù)之間進行傳遞時,編譯器利用閉包擴展變量的作用域,以保證隨時能得到所需要的數(shù)據(jù)2014-03-03關(guān)于C#數(shù)強轉(zhuǎn)會不會拋出異常詳解
這篇文章主要給大家介紹了關(guān)于C#數(shù)強轉(zhuǎn)會不會拋出異常的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。2018-04-04C#表達式樹Expression動態(tài)創(chuàng)建表達式
這篇文章介紹了C#表達式樹Expression動態(tài)創(chuàng)建表達式的方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-12-12