VBレスキュー(花ちゃん)
VB2005用トップページへVBレスキュー(花ちゃん)のトップページVB6.0用のトップページ各掲示板

メニューへ戻ります。 ドライブ関係のメニュー
1.このコンピューター上で利用可能なドライ名を列挙する
2.ドライブの種類を取得する
3.ドライブの総容量(MB単位)・空き領域・使用領域を取得
4.指定のドライブの存在及びドライブの準備ができているかどうかを取得
5.ドライブのボリュームラベル・ファイルシステム・シリアルナンバー等を取得
6.
7.
8.
9.
10.
11.
12.
 .
20.その他、当サイト内に掲載のドライブに関するサンプル 


2.ドライブの種類を取得する(29_Drv_02) (旧、SampleNo.037)
1.DriveInfo.DriveType プロパティを使った方法
2.FileSystemProxy.Drives プロパティを使った方法
3.WMI の Win32_LogicalDisk クラスを使った方法.
4.
5.
6.

 下記プログラムコードに関する補足・注意事項 
動作確認:Windows 8.1 (Windows 7) / VB2013 (VB2010) / Framework 4.5.1 / 対象の CPU:x86
Option :[Compare Text] [Explicit On] [Infer On] [Strict On]
Imports :System.Management(WMI を使用する場合)
参照設定:System.Management(WMI を使用する場合)
  参照設定方法の参照
その他 :
    :
このサンプル等の内容を無断で転載、掲載、配布する事はお断りします。(私の修正・改訂・削除等が及ばなくなるので)
必要ならリンクをはるようにして下さい。(引用の場合は引用元のリンクを明記して下さい)
このページのトップへ移動します。 1.DriveInfo.DriveType プロパティを使った方法

Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click
    TextBox1.Font = New Font("MS ゴシック", 12, FontStyle.Regular)
    TextBox1.Clear()

    'DriveInfo.DriveType プロパティ:ドライブの種類を取得します。
    For Each Drive As System.IO.DriveInfo In System.IO.DriveInfo.GetDrives()
        TextBox1.Text &= String.Format("{0} : {1}", Drive.Name, Drive.DriveType) & vbCrLf
    Next

'上記取得結果
'C:\ : Fixed
'D:\ : Fixed
'E:\ : CDRom
'F:\ : Fixed
'G:\ : Fixed
'H:\ : Fixed

End Sub

因みに、F: ドライブには 64 GB のUSB メモリが装着してありますが、ixed の判定になります。

このページのトップへ移動します。 2.FileSystemProxy.Drives プロパティを使った方法

Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click
    TextBox1.Font = New Font("MS ゴシック", 12, FontStyle.Regular)
    TextBox1.Clear()

    'FileSystemProxy.Drives プロパティ :利用可能なすべてのドライブ名の読み取り専用コレクションを返します
    For Each Drive As System.IO.DriveInfo In My.Computer.FileSystem.Drives()
        TextBox1.Text &= String.Format("{0} : {1}", Drive.Name, Drive.DriveType) & vbCrLf
    Next

'上記取得結果
'D:\ : Fixed
'E:\ : CDRom
'F:\ : Fixed
'G:\ : Fixed
'H:\ : Fixed

End Sub

因みに、F: ドライブには 64 GB のUSB メモリが装着してありますが、ixed の判定になります。

このページのトップへ移動します。 3.WMI の Win32_LogicalDisk クラスを使った方法

Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click
    TextBox1.Font = New Font("MS ゴシック", 12, FontStyle.Regular)
    TextBox1.Clear()

    'WMIのWin32_LogicalDiskクラス:論理ディスク情報を取得
    Dim mc As New ManagementClass("Win32_LogicalDisk")
    Dim moCollection As ManagementObjectCollection = mc.GetInstances()
    For Each mo As ManagementObject In moCollection
        TextBox1.Text &= String.Format("{0} : {1}", mo("Caption").ToString, mo("Description").ToString) & vbCrLf
    Next

'上記取得結果
'C: : ローカル固定ディスク
'D: : ローカル固定ディスク
'E: : CD-ROM ディスク
'F: : ローカル固定ディスク
'G: : ローカル固定ディスク
'H: : ローカル固定ディスク

End Sub

これだけがドライブの種類を日本語で表示されます。(但し、識別番号でも取得できます。)
因みに、F: ドライブには 64 GB のUSB メモリが装着してありますが、ixed の判定になります。

※ USB メモリの容量が大きいと外付けのハードディスクと同様の扱いとなり区別が簡単にできません。
  なにか簡単にUSB メモリと外付けのハードディスクを区別する方法をご存知でしたら教えて下さい。
  今のところボリューム名を付けておいて、それで区別しているのですが。

このページのトップへ移動します。 4.


このページのトップへ移動します。 5.


このページのトップへ移動します。 6.


このページのトップへ移動します。 検索キーワード及びサンプルコードの別名(機能名)
ドライブ Drive  GetDrives メソッド Directory.GetLogicalDrives メソッド FileSystemProxy.Drives プロパティ Environment.GetLogicalDrives メソッド
WMIの Win32_LogicalDisk クラス 論理ディスク情報を取得



このページのトップへ移動します。