C#には、ドライブを操作する様々なツールが用意されています。
  

  ドライブの大きさ(容量)を取得する
  接続されて いる全ドライブ名を取得する
  ドライブの 種類を取得する


ドライブの大きさ(容量)を取得する
  プ ログ ラムからドライブの大きさを取得する場合は、ウィンドウズシステムのSystem.Mnagement.dllを活用します。このため、コードの
冒頭で
System.Management 名前空間を読み込みます。
  ドライブ容量は、

         
using System.Management;
        long volume,freevolume;
        ManagementObject disk = new ManagementObject("Win32_LogicalDisk=\"C:\""); //Cドライブ容量取得の場合

 
ドライブの総容量(MB) は、Sizeパラメータで取得します。
        volume= (long)(disk.Properties["Size"].Value/1024/1024);

  ドライブの空き容量(MB)は、FreeSpaceパラメータで取得しま す。   
        freevolume=(long)(disk.Properties["FreeSpace"].Value/1024/1024);

   
接続されて いる全ドライブ名を取得する
  内蔵・外付けドライブ、ネットワークドライブ、リムーバブル メデイアなど、コンピュータがドライブとして認識できるすべてのドライブ名を取得し
 ます。
        using System.IO;
        string[] drives = Directory.GetLogicalDrives() ; // 全てのドライブ名を取得
        i=drives.Length; //iはドライブ総数

  この結果、ドライブ名が文字配列 drives[0],
drives[1],・・・,drives[i-1]にそれぞれ代入されます。 


ドライブの 種類を取得する
      ドライブの種類はDescriptionパラメータで取得し ます。

          using System.Management;
     string driveType; //ドライブ種類
        ManagementObject disk = new ManagementObject("Win32_LogicalDisk=\"C:\""); //Cドライブの種類取得の場合
        driveType= (disk.Properties["Description"].Value.ToString (); ドライブ種類の取得

 
  ドライブの種類としては、 フロッピーディスク、固定ディスク、リムーバブルディスク等 があります。