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 對應(yīng)的屬性值的規(guī)律, 三個(gè)之間的關(guān)系 得出 移動硬盤的盤符的。
相關(guān)文章
C#函數(shù)式程序設(shè)計(jì)之用閉包封裝數(shù)據(jù)的實(shí)現(xiàn)代碼
如果一個(gè)程序設(shè)計(jì)語言能夠用高階函數(shù)解決問題,則意味著數(shù)據(jù)作用域問題已十分突出。當(dāng)函數(shù)可以當(dāng)成參數(shù)和返回值在函數(shù)之間進(jìn)行傳遞時(shí),編譯器利用閉包擴(kuò)展變量的作用域,以保證隨時(shí)能得到所需要的數(shù)據(jù)2014-03-03
關(guān)于C#數(shù)強(qiáng)轉(zhuǎn)會不會拋出異常詳解
這篇文章主要給大家介紹了關(guān)于C#數(shù)強(qiáng)轉(zhuǎn)會不會拋出異常的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-04-04
C#表達(dá)式樹Expression動態(tài)創(chuàng)建表達(dá)式
這篇文章介紹了C#表達(dá)式樹Expression動態(tài)創(chuàng)建表達(dá)式的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-12-12

