成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C#獲取邏輯硬盤更多信息方法談

開發(fā) 后端
若僅簡單實現(xiàn)C#獲取邏輯驅(qū)動器的名稱列表我們使用.Net框架的Environment.GetLogicalDrives即可,但是若想獲得更多關(guān)于磁盤驅(qū)動器的信息我們可以使用.Net框架下的System.Management命名空間。

C#獲取更多邏輯硬盤信息的過程,主要是利用Visual Studio 2005建立一個WinForm工程,并拖放相關(guān)控件。

1、概述

若僅簡單實現(xiàn)C#獲取邏輯驅(qū)動器的名稱列表我們使用.NET框架的Environment.GetLogicalDrives即可,但是若想獲得更多關(guān)于磁盤驅(qū)動器的信息我們可以使用.NET框架下的System.Management命名空間所提供的類和委托等對大量管理信息和管理事件的集合進行訪問(見http://www.iwebtrados.com.cn/post/111.html),這些信息和事件都與WMI有關(guān),該命名空間下的類實際上也是對WMI的一種封裝,應用程序和服務可以使用從ManagementObjectSearcher和ManagementQuery派生的類,查詢感興趣的管理信息,例如在磁盤上還剩多少可用空間、當前CPU利用率是多少、某一應用程序正連接到哪一數(shù)據(jù)庫等等。下面,我將詳細闡述如何利用WMI獲取邏輯硬盤詳細信息。

2、C#獲取更多邏輯硬盤信息實現(xiàn)過程

(1)首先用Visual Studio 2005新建一個C#的Winform工程,在form1窗體上拖放一個listview控件以及一個button控件,都采用默認命名,設置listview的view屬性為detail,添加5個列名稱分別為“名稱”,“類型”,“總大小”,“可用空間”,“序列號”。

(2)引入System.Management,具體見http://www.iwebtrados.com.cn/post/102.html

(3)在button_click事件中鍵入如下代碼

  1. Code  
  2. privatevoidbutton1_Click(objectsender,EventArgse)  
  3. {  
  4. SelectQuerysq=newSelectQuery("select*fromwin32_logicaldisk");  
  5. System.Management.ManagementObjectSearchermos=newManagementObjectSearcher(sq);  
  6. //  
  7. this.listView1.Items.Clear();  
  8. foreach(System.Management.ManagementObjectdiskinmos.Get())  
  9. {  
  10. ListViewItemitem=listView1.Items.Add(disk["Name"].ToString());  
  11. //Name表示設備的名稱  
  12. //各屬性的標識見聯(lián)機的MSDN里,Win32andCOMDevelopment下的WMI。  
  13. //如http://msdn.microsoft.com/en-us/library/aa394173(VS.85).aspx  
  14. try 
  15. {  
  16. stringstrType=disk["DriveType"].ToString();  
  17. switch(strType)//類型  
  18. {  
  19. case"0":  
  20. item.SubItems.Add("未知設備");  
  21. break;  
  22. case"1":  
  23. item.SubItems.Add("未分區(qū)");  
  24. break;  
  25. case"2":  
  26. item.SubItems.Add("可移動磁盤");  
  27. break;  
  28. case"3":  
  29. item.SubItems.Add("硬盤");  
  30. break;  
  31. case"4":  
  32. item.SubItems.Add("網(wǎng)絡驅(qū)動器");  
  33. break;  
  34. case"5":  
  35. item.SubItems.Add("光驅(qū)");  
  36. break;  
  37. case"6":  
  38. item.SubItems.Add("內(nèi)存磁盤");  
  39. break;  
  40. }  
  41. }  
  42. catch 
  43. {  
  44. item.SubItems.Add("設備未準備好");  
  45. }  
  46. try 
  47. {  
  48. item.SubItems.Add(GetSizeUseUnit(disk["Size"].ToString()));  
  49. //未用GetSizeUseUnit函數(shù)處理的Size屬性以字節(jié)為單位  
  50. }  
  51. catch 
  52. {  
  53. }  
  54. try//可移動設備如光驅(qū)在未插入光盤時處于不可用狀態(tài),需要捕捉異常。  
  55. {  
  56. item.SubItems.Add(GetSizeUseUnit(disk["FreeSpace"].ToString()));  
  57. }  
  58. catch 
  59. {  
  60. }  
  61. try 
  62. {  
  63. item.SubItems.Add(disk["VolumeSerialNumber"].ToString());  
  64. }  
  65. catch 
  66. {  
  67. }  
  68. }  
  69. }  
  70.  
  71. //處理大小的函數(shù) 

Code  

  1. privatestringGetSizeUseUnit(stringsize)  
  2. {  
  3. doubledSpace=Convert.ToDouble(size);  
  4. stringsSpace=dSpace.ToString("N");  
  5. string[]tmp;  
  6. stringrtnSize="0";  
  7. tmp=sSpace.Split(',');  
  8. switch(tmp.GetUpperBound(0))  
  9. {  
  10. case0:  
  11. rtnSize=tmp[0]+"字節(jié)";  
  12. break;  
  13. case1:  
  14. rtnSize=tmp[0]+"."+tmp[1].Substring(0,2)+"K";  
  15. break;  
  16. case2:  
  17. rtnSize=tmp[0]+"."+tmp[1].Substring(0,2)+"M";  
  18. break;  
  19. case3:  
  20. rtnSize=tmp[0]+"."+tmp[1].Substring(0,2)+"G";  
  21. break;  
  22. case4:  
  23. rtnSize=tmp[0]+"."+tmp[1].Substring(0,2)+"T";  
  24. break;  
  25. }  
  26. returnrtnSize;  

3、C#獲取更多邏輯硬盤信息運行效果

這樣我們通過托管版本的WMI就輕松獲得邏輯磁盤的相關(guān)信息。除了邏輯磁盤,我們通過WMI還可輕松獲得CPU,網(wǎng)卡等設備的信息。本代碼在WindowsXP SP2+Visual Studio 2005下編譯和調(diào)試通過。

本文來自網(wǎng)絡小筑博客園文章《c#獲取邏輯硬盤信息

【編輯推薦】

  1. C#編寫數(shù)字轉(zhuǎn)換中文算法
  2. 分析C#調(diào)用COM對象
  3. C# SingleInstance類淺析
  4. 概述C#調(diào)用Active組件
  5. C# Convert.ToInt32簡介
責任編輯:彭凡 來源: 博客園
相關(guān)推薦

2009-08-25 11:13:28

C#獲取邏輯硬盤信息

2009-09-08 15:28:24

C#委托

2009-08-21 17:24:18

C#控制攝像頭

2009-08-17 15:52:42

C#多態(tài)

2009-09-08 16:22:27

c# listBox

2009-08-26 17:16:22

C# CheckSta

2009-08-17 17:40:53

C# GetAllCu

2009-08-26 09:50:08

C# GreetPeo

2009-08-25 16:24:44

C#信息架構(gòu)視圖

2009-08-07 17:38:08

C#無詞尾符號

2011-06-09 09:08:00

C#循環(huán)結(jié)構(gòu)

2009-08-12 14:23:09

C#邏輯運算符

2009-08-31 16:01:28

C#水晶報表數(shù)據(jù)獲取方

2024-09-23 12:10:00

C#MAC代碼

2009-08-19 14:42:21

C#重載LoadPos

2009-08-25 17:07:27

C#虛擬方法

2009-08-31 16:33:28

C#調(diào)用Dispose

2009-08-31 18:05:14

C#調(diào)用WalkTre

2009-09-07 10:37:32

C#執(zhí)行Finaliz

2009-09-11 09:15:06

C# get方法
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 欧美国产精品一区二区 | 日本在线网址 | 精品国产一区探花在线观看 | 成人久久久 | 欧美成人一级视频 | 91精品国产777在线观看 | 国产福利91精品 | 在线色网站 | 国产一区在线看 | 久久久久久久久久毛片 | 狠狠色香婷婷久久亚洲精品 | 国产精品污www一区二区三区 | 免费在线国产视频 | 欧美日韩淫片 | 另类视频在线 | av网站观看 | 国产精品久久国产精品99 gif | 国产欧美精品区一区二区三区 | 天天色天天射天天干 | 中文字幕一区二区三区在线观看 | 国产在线观 | 精品亚洲一区二区三区 | www.天天干.com| 欧美日韩黄色一级片 | 精品国产91久久久久久 | 亚洲免费一区二区 | 在线伊人| 国产精品v| 日韩中文字幕在线观看 | a级大片免费观看 | 黑人巨大精品欧美一区二区免费 | 亚洲精品黄 | 亚洲每日更新 | 日日摸夜夜爽人人添av | 91精品国产91久久久久久吃药 | 黄色av网站在线观看 | 久久久91精品国产一区二区三区 | 国产毛片毛片 | av在线一区二区三区 | 亚洲精品在线看 | 青青草一区二区三区 |