[ VB.NET / C# ] ドライブのサイズや空き容量などの詳細情報を取得する ( DriveInfo.GetDrives )

Pocket

ここでは、論理デバイス( 固定ディスクやUSB リムーバルデバイスなど )の一覧とその詳細情報を取得するサンプルコードを掲載しています。

スポンサーリンク

論理デバイス情報の取得

ディスク容量の監視などに使えそうです。そういえば数年前、監視用サーバが処理能力不足でダウンして監視できなくなったことがありました。何のためにクラスタ構成にまでしたのだろう。

VB.NET

    ' 論理ドライブの一覧を取得する
    Dim drives As System.IO.DriveInfo() = System.IO.DriveInfo.GetDrives()

    ' ドライブの詳細情報を表示する
    For Each drive As System.IO.DriveInfo In drives
        Console.WriteLine("--------------------------------------------------")
        Console.WriteLine("ドライブ名:{0}", drive.Name)
        Console.WriteLine("--------------------------------------------------")
        Console.WriteLine("ドライブ有効              :{0}", drive.IsReady.ToString())
        Console.WriteLine("ドライブルートディレクトリ:{0}", drive.RootDirectory)
        Console.WriteLine("ファイルシステム名        :{0}", drive.DriveFormat.ToString())
        Console.WriteLine("ドライブタイプ            :{0}", drive.DriveType.ToString())
        Console.WriteLine("ボリュームラベル          :{0}", drive.VolumeLabel)
        Console.WriteLine("使用可能サイズ(バイト)  :{0}", drive.AvailableFreeSpace)
        Console.WriteLine("ドライブサイズ(バイト)  :{0}", drive.TotalSize)
        Console.WriteLine("ドライブ空容量(バイト)  :{0}", drive.TotalFreeSpace)
    Next

C#

    // 論理ドライブの一覧を取得する
    System.IO.DriveInfo[] drives = System.IO.DriveInfo.GetDrives();

    // ドライブの詳細情報を表示する
    foreach(System.IO.DriveInfo drive in drives) {
        Console.WriteLine("--------------------------------------------------");
        Console.WriteLine("ドライブ名:{0}", drive.Name);
        Console.WriteLine("--------------------------------------------------");
        Console.WriteLine("ドライブ有効              :{0}", drive.IsReady.ToString());
        Console.WriteLine("ドライブルートディレクトリ:{0}", drive.RootDirectory);
        Console.WriteLine("ファイルシステム名        :{0}", drive.DriveFormat.ToString());
        Console.WriteLine("ドライブタイプ            :{0}", drive.DriveType.ToString());
        Console.WriteLine("ボリュームラベル          :{0}", drive.VolumeLabel);
        Console.WriteLine("使用可能サイズ(バイト)  :{0}", drive.AvailableFreeSpace);
        Console.WriteLine("ドライブサイズ(バイト)  :{0}", drive.TotalSize);
        Console.WriteLine("ドライブ空容量(バイト)  :{0}", drive.TotalFreeSpace);
    }

なお、ネットワークドライブや固定デバイスなどの区別は DriveType 列挙体で行うことができます。

DriveType 列挙体
メンバ名 説明
CDRom ドライブは、CD-ROM、DVD-ROM などの光ディスク ドライブです。
Fixed ドライブは固定ディスクです。
Network ドライブはネットワーク ドライブです。
NoRootDirectory ドライブにはルート ディレクトリがありません。
Ram ドライブは RAM ディスクです。
Removable ドライブは、フロッピー ディスク ドライブ、USB フラッシュ ドライブなどのリムーバブル ストレージ デバイスです。
Unknown ドライブの種類は不明です。
参考
スポンサーリンク


Pocket

Leave a Comment

Your email address will not be published. Required fields are marked *