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 クラス 論理ディスク情報を取得 |