[ 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 Reply

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

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>