ドライブの種類を取得する方法

◆概要

このページは、Visual Basic 6.0でドライブの種類を取得する方法について記載しています。


指定されたドライブの種類を取得するには、ファイルシステムオブジェクトに含まれるDriveオブジェクトのDrive Type プロパティを利用する方法とGetDriveType API関数を利用する方法があります。

◆DriveオブジェクトのDrive Type プロパティを利用する方法

次の例は、Hドライブの種類をイミディエイトウィンドウに表示します。


次の例を実行する前に、Visual Basic 6.0のメニュー[表示]-[イミディエイトウィンドウ](ショートカットCtrl+G)でイミディエイトウィンドウを表示させておいてください。

Private Sub Command1_Click()
    Dim objDriveSystem As Object
    Dim objDrive       As Object
    Dim strDrive       As String

    strDrive = "H"

    Set objDriveSystem = CreateObject("Scripting.FileSystemObject")
    Set objDrive = objDriveSystem.getdrive(strDrive)

    'Hドライブの種類を取得
    Debug.Print strDrive; "ドライブの種類:";

    Select Case objDrive.DriveType
        Case 0: Debug.Print "不明"
        Case 1: Debug.Print "リムーバルディスク"
        Case 2: Debug.Print "固定ディスク"
        Case 3: Debug.Print "リモートディスク"
        Case 4: Debug.Print "CD-ROM"
        Case 5: Debug.Print "RAMディスク"
    End Select

    'オブジェクトを開放
    Set objDriveSystem = Nothing
    Set objDrive = Nothing

End Sub
  

◆実行結果

イミディエイトウィンドウ

◆GetDriveType API関数を利用する方法

GetDriveType API関数を利用すると、接続されているドライブの種類を判定することができます。

次の例は、GetDriveType 関数を使って、システムに存在するすべてのドライブを検出しています。

次の例を実行する前に、Visual Basic 6.0のメニュー[表示]-[イミディエイトウィンドウ](ショートカットCtrl+G)でイミディエイトウィンドウを表示させておいてください。


Option Explicit

Private Declare Function GetDriveType _
    Lib "KERNEL32" Alias "GetDriveTypeA" ( _
        ByVal nDrive As String _
    ) As Long

'GetDriveTypeが返す値
Const DRIVE_REMOVABLE = 2
Const DRIVE_FIXED = 3
Const DRIVE_REMOTE = 4
Const DRIVE_CDROM = 5
Const DRIVE_RAMDISK = 6


Private Sub Command1_Click()
    Dim i, Drv, D$
    For i = 0 To 25 'AからZのすべてのドライブ
        D$ = Chr$(i + 65) & ":\"
        Drv = GetDriveType(D$)
        Select Case Drv
            Case DRIVE_REMOVABLE
                Debug.Print D$ & " ドライブはリムーバルです。"
            Case DRIVE_FIXED
                Debug.Print D$ & " ドライブはハードディスクです。"
            Case DRIVE_REMOTE
                Debug.Print D$ & " ドライブはリモートです。"
            Case DRIVE_CDROM
                Debug.Print D$ & " ドライブはCD-ROMです。"
            Case DRIVE_RAMDISK
                Debug.Print D$ & " ドライブはRAMディスクです。"
            Case Else
        End Select
    Next i
End Sub

◆実行結果

イミディエイトウィンドウ



▼ページトップへ