玄関へお回り下さい。
ドライブの種類を取得              (SNo.037)
使用コントロール Button2  Button3 
その他条件 WindowsXP(Vista) Visual Basic 2005(VB2008)
Windows 7 / Visual Basic 2010 
★ ドライブの種類を取得(Win32 API 関数を使った方法)

'-------- 下記の位置に名前空間を定義 ----------------------

Imports System.Runtime.InteropServices

Public Class Form1
'----------- ドライブの種類を取得する Win32 API 関係の宣言部分 ----------
'Imports System.Runtime.InteropServices を記述の事
'ドライブの種類を取得する Win32 API 関数の宣言(914)
<DllImport("KERNEL32.DLL", CharSet:=CharSet.Auto)> _
Private Shared Function GetDriveType( _
  ByVal pRootPathName As String) As Integer
End Function
'ドライブの種類を取得する定数
Private Enum DRIVETYPE As Integer
  DRIVE_UNKNOWN = 0     'ドライブが不明
  DRIVE_NO_ROOT_DIR = 1   'ルートフォルダーなし
  DRIVE_REMOVABLE = 2    'フロッピー又はリムーバブルディスク
  DRIVE_FIXED = 3      '固定ディスク(ハードディスク)
  DRIVE_REMOTE = 4      'リモート又はネットワークドライブ
  DRIVE_CDROM = 5      'CD-ROMドライブ
  DRIVE_RAMDISK = 6     'RAM ディスク
End Enum
'------------------- Win32 API 関係の宣言部分 ここまで ------------------

Private Sub Button2_Click(ByVal sender As System.Object, _
             ByVal e As System.EventArgs) Handles Button2.Click
'ドライブの種類を取得(APIを使った方法)
  Dim strDriveType As String = ""
  For Each sDrive As String In System.IO.Directory.GetLogicalDrives()
   Select Case GetDriveType(sDrive)
     Case DRIVETYPE.DRIVE_UNKNOWN
      strDriveType = " : 不明なドライブ"
     Case DRIVETYPE.DRIVE_NO_ROOT_DIR
      strDriveType = " : ルートフォルダーがありません。"
     Case DRIVETYPE.DRIVE_REMOVABLE
      strDriveType = " : リムーバブルディスク"
     Case DRIVETYPE.DRIVE_FIXED
      strDriveType = " : ハードディスク"
     Case DRIVETYPE.DRIVE_REMOTE
      strDriveType = " : リモートドライブ"
     Case DRIVETYPE.DRIVE_CDROM
      strDriveType = " : CD-ROMドライブ"
     Case DRIVETYPE.DRIVE_RAMDISK
      strDriveType = " : RAM ディスク"
   End Select
   Debug.WriteLine(sDrive & strDriveType)
  Next
'結果 私の環境での取得結果
  ' A:\ : リムーバブルディスク
  ' C:\ : ハードディスク
  ' D:\ : ハードディスク
  ' E:\ : CD-ROMドライブ
  ' F:\ : ハードディスク
  ' G:\ : リムーバブルディスク
End Sub

'------------------- VB2005 以降は、下記で取得できます。 ------------------

Private Sub Button3_Click(ByVal sender As System.Object, _
             ByVal e As System.EventArgs) Handles Button3.Click
'DriveInfo クラスは .NET Framework version 2.0 で新しく追加されたものです。
  For Each d As System.IO.DriveInfo In System.IO.DriveInfo.GetDrives()
   Console.WriteLine("{0} : {1}", d.Name, d.DriveType)
  Next
'結果 私の環境での取得結果
   ' A:\ : Removable
   ' C:\ : Fixed
   ' D:\ : Fixed
   ' E:\ : CDRom
   ' F:\ : Fixed
   ' G:\ : Removable
End Sub

End Class



2004/05/19
2005/09/18
2013/01/26

VBレスキュー(花ちゃん)

Visual Basic 2010
VB.NET2003/VB2005/VB2008/VB2010