Получение буквы компакт-диска в VB.NET

Я использую следующий код, чтобы получить список букв для каждого диска на моем компьютере. Я хочу получить букву диска компакт-диска из этого списка. Как мне это проверить?

Код, который я использую для получения списка, выглядит следующим образом:

В событии Form.Load:

    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

person Furqan Sehgal    schedule 12.03.2011    source источник
comment
Итак, код, который вы показали, работает для перечисления всех букв дисков, и вы спрашиваете, как определить, какой из них является дисководом для компакт-дисков? Что вы предлагаете делать в тех случаях, когда на компьютере установлено несколько приводов компакт-дисков (например, CD-RW и DVD)?   -  person Cody Gray    schedule 12.03.2011
comment
да, сэр, это проблема. Может быть, он может поместить буквы всех этих каталогов в список ?????? Но как определить тип?   -  person Furqan Sehgal    schedule 12.03.2011


Ответы (1)


Протестировано и возвращает правильные результаты на моем компьютере:

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

Предполагается, конечно, 3.5, так как он использует LINQ. Чтобы заполнить список, измените Console.WriteLine на ListBox.Items.Add.

person Matt Sieker    schedule 12.03.2011
comment
Хм, похоже, я пропустил это. Хороший ответ. - person Cody Gray; 12.03.2011