如何知道磁盤信息

 

 private void FindUsb()
       {
           //string []Logicdriver  = Environment.GetLogicalDrives();
           DriveInfo[] driveinfo = DriveInfo.GetDrives();
           for (int i = 0; i < driveinfo.Length; i ++ )
           {
               switch (driveinfo[i].DriveType.ToString())
               {
                   case "Fixed"://固定磁盤
                       break;
                   case "Removable"://移動硬盤
                       break;
                   case "NetWork": //網絡磁盤
                       break;
                   case "CDRom"://光盤設備
                       break;
                   case "Unknown"://未知設備
                       break;
                   default:
                       break;

               }
           }

       }

另外還可以重載winProc()來獲得有磁盤插入。

using   System;
using   System.Collections.Generic;
using   System.ComponentModel;
using   System.Data;
using   System.Drawing;
using   System.Text;
using   System.Windows.Forms;
using   System.IO;
namespace   USBDeviceSet
{
        public   partial   class   Form1   :   Form
        {
                public   const   int   WM_DEVICECHANGE   =   0x219;
                public   const   int   DBT_DEVICEARRIVAL   =   0x8000;
                public   const   int   DBT_CONFIGCHANGECANCELED   =   0x0019;
                public   const   int   DBT_CONFIGCHANGED   =   0x0018;
                public   const   int   DBT_CUSTOMEVENT   =   0x8006;
                public   const   int   DBT_DEVICEQUERYREMOVE   =   0x8001;
                public   const   int   DBT_DEVICEQUERYREMOVEFAILED   =   0x8002;
                public   const   int   DBT_DEVICEREMOVECOMPLETE   =   0x8004;
                public   const   int   DBT_DEVICEREMOVEPENDING   =   0x8003;
                public   const   int   DBT_DEVICETYPESPECIFIC   =   0x8005;
                public   const   int   DBT_DEVNODES_CHANGED   =   0x0007;
                public   const   int   DBT_QUERYCHANGECONFIG   =   0x0017;
                public   const   int   DBT_USERDEFINED   =   0xFFFF;
                public   Form1()
                {
                        InitializeComponent();
                }
                protected   override   void   WndProc(ref   Message   m)
                {
                        try
                        {
                                if   (m.Msg   ==   WM_DEVICECHANGE)
                                {
                                        switch   (m.WParam.ToInt32())
                                        {
                                                case   WM_DEVICECHANGE:
                                                        break;
                                                case   DBT_DEVICEARRIVAL://U盤插入
                                                        DriveInfo[]   s   =   DriveInfo.GetDrives();
                                                        foreach   (DriveInfo   drive   in   s)
                                                        {
                                                                if   (drive.DriveType   ==   DriveType.Removable)
                                                                {
                                                                        richTextBox1.AppendText( "U盤已插入,盤符爲: "   +   drive.Name.ToString()   +   "\r\n ");
                                                                        break;
                                                                }
                                                        }
                                                        break;
                                                case   DBT_CONFIGCHANGECANCELED:
                                                        break;
                                                case   DBT_CONFIGCHANGED:
                                                        break;
                                                case   DBT_CUSTOMEVENT:
                                                        break;
                                                case   DBT_DEVICEQUERYREMOVE:
                                                        break;
                                                case   DBT_DEVICEQUERYREMOVEFAILED:
                                                        break;
                                                case   DBT_DEVICEREMOVECOMPLETE:   //U盤卸載
                                                        break;
                                                case   DBT_DEVICEREMOVEPENDING:
                                                        break;
                                                case   DBT_DEVICETYPESPECIFIC:
                                                        break;
                                                case   DBT_DEVNODES_CHANGED:
                                                        break;
                                                case   DBT_QUERYCHANGECONFIG:
                                                        break;
                                                case   DBT_USERDEFINED:
                                                        break;
                                                default:
                                                        break;
                                        }
                                }
                        }
                        catch   (Exception   ex)
                        {
                                MessageBox.Show(ex.Message);
                        }
                        base.WndProc(ref   m);
                }
        }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章