.netwindowsvb.netdrivesdrive-letter

Getting CD drive letter in VB.NET


I am using the following code to get a list of the letters for each drive on my computer. I want to get the drive letter of the CD drive from this list. How do I check it?

The code I am using to get list is as below:

In the Form.Load event:

    cmbDrives.DropDownStyle = ComboBoxStyle.DropDownList
    Dim sDrive As String, sDrives() As String

    sDrives = ListAllDrives()

    For Each sDrive In sDrives

    Next
    cmbDrives.Items.AddRange(ListAllDrives())

. . .

Public Function ListAllDrives() As String()
    Dim arDrives() As String
    arDrives = IO.Directory.GetLogicalDrives()
    Return arDrives
End Function

Solution

  • Tested, and returns the correct results on my computer:

    Dim cdDrives = From d In IO.DriveInfo.GetDrives() _
                    Where d.DriveType = IO.DriveType.CDRom _
                    Select d
    
    For Each drive In cdDrives
        Console.WriteLine(drive.Name)
    Next
    

    Assumes 3.5, of course, since it's using LINQ. To populate the list box, change the Console.WriteLine to ListBox.Items.Add.