您好,登錄后才能下訂單哦!
這篇文章給大家介紹C#中如何獲取邏輯硬盤信息,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
1、概述
若僅簡單實現C#獲取邏輯驅動器的名稱列表我們使用.NET框架的Environment.GetLogicalDrives即可,但是若想獲得更多關于磁盤驅動器的信息我們可以使用.NET框架下的System.Management命名空間所提供的類和委托等對大量管理信息和管理事件的集合進行訪問(見http://www.iwebtrados.com.cn/post/111.html),這些信息和事件都與WMI有關,該命名空間下的類實際上也是對WMI的一種封裝,應用程序和服務可以使用從ManagementObjectSearcher和ManagementQuery派生的類,查詢感興趣的管理信息,例如在磁盤上還剩多少可用空間、當前CPU利用率是多少、某一應用程序正連接到哪一數據庫等等。下面,我將詳細闡述如何利用WMI獲取邏輯硬盤詳細信息。
2、C#獲取更多邏輯硬盤信息實現過程
(1)首先用Visual Studio 2005新建一個C#的Winform工程,在form1窗體上拖放一個listview控件以及一個button控件,都采用默認命名,設置listview的view屬性為detail,添加5個列名稱分別為“名稱”,“類型”,“總大小”,“可用空間”,“序列號”。
(2)引入System.Management
(3)在button_click事件中鍵入如下代碼
Code privatevoidbutton1_Click(objectsender,EventArgse) { SelectQuerysq=newSelectQuery("select*fromwin32_logicaldisk"); System.Management.ManagementObjectSearchermos=newManagementObjectSearcher(sq); // this.listView1.Items.Clear(); foreach(System.Management.ManagementObjectdiskinmos.Get()) { ListViewItemitem=listView1.Items.Add(disk["Name"].ToString()); //Name表示設備的名稱 //各屬性的標識見聯機的MSDN里,Win32andCOMDevelopment下的WMI。 //如http://msdn.microsoft.com/en-us/library/aa394173(VS.85).aspx try { stringstrType=disk["DriveType"].ToString(); switch(strType)//類型 { case"0": item.SubItems.Add("未知設備"); break; case"1": item.SubItems.Add("未分區"); break; case"2": item.SubItems.Add("可移動磁盤"); break; case"3": item.SubItems.Add("硬盤"); break; case"4": item.SubItems.Add("網絡驅動器"); break; case"5": item.SubItems.Add("光驅"); break; case"6": item.SubItems.Add("內存磁盤"); break; } } catch { item.SubItems.Add("設備未準備好"); } try { item.SubItems.Add(GetSizeUseUnit(disk["Size"].ToString())); //未用GetSizeUseUnit函數處理的Size屬性以字節為單位 } catch { } try//可移動設備如光驅在未插入光盤時處于不可用狀態,需要捕捉異常。 { item.SubItems.Add(GetSizeUseUnit(disk["FreeSpace"].ToString())); } catch { } try { item.SubItems.Add(disk["VolumeSerialNumber"].ToString()); } catch { } } } //處理大小的函數
Code
privatestringGetSizeUseUnit(stringsize) { doubledSpace=Convert.ToDouble(size); stringsSpace=dSpace.ToString("N"); string[]tmp; stringrtnSize="0"; tmp=sSpace.Split(','); switch(tmp.GetUpperBound(0)) { case0: rtnSize=tmp[0]+"字節"; break; case1: rtnSize=tmp[0]+"."+tmp[1].Substring(0,2)+"K"; break; case2: rtnSize=tmp[0]+"."+tmp[1].Substring(0,2)+"M"; break; case3: rtnSize=tmp[0]+"."+tmp[1].Substring(0,2)+"G"; break; case4: rtnSize=tmp[0]+"."+tmp[1].Substring(0,2)+"T"; break; } returnrtnSize; }
關于C#中如何獲取邏輯硬盤信息就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。