中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#中如何獲取邏輯硬盤信息

發布時間:2021-07-19 15:37:50 來源:億速云 閱讀:274 作者:Leah 欄目:編程語言

這篇文章給大家介紹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#中如何獲取邏輯硬盤信息就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平陆县| 沙河市| 安图县| 南通市| 八宿县| 墨脱县| 陕西省| 甘泉县| 崇礼县| 张家口市| 报价| 镇巴县| 中方县| 富锦市| 六枝特区| 武义县| 雅安市| 修水县| 大足县| 北票市| 犍为县| 延长县| 民勤县| 甘南县| 锡林郭勒盟| 巴彦县| 衡水市| 榆社县| 神木县| 临潭县| 蒙自县| 璧山县| 诸暨市| 吉木萨尔县| 微博| 工布江达县| 东方市| 澄城县| 霍山县| 嘉义市| 宁德市|