Как найти истинную букву диска CD-Rom, если также установлен виртуальный привод?

Я пытаюсь определить CD-ROM в приложении, я использую

ComboBox cb = new ComboBox();
        var drives = DriveInfo.GetDrives();
        foreach (var drive in drives)
        {
            if (drive.DriveType == DriveType.CDRom)
            {
                cboDrives.Items.Add(drive);
            }
        }

Он подхватывает D:\ и E: \

D:\ - это настоящий CD-ROM на моем рабочем ПК, E:\ - это виртуальный привод через Alcohol 120%

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

Я хочу, чтобы пользователям было проще, при создании ISO они должны выбирать только один диск и один и тот же для тестирования ISO.

Я мог бы попытаться отфильтровать букву диска D:\, когда часть моего приложения, которая тестирует ISO-образы, запущена, но не на всех компьютерах есть D:\ в качестве дисковода компакт-дисков, например, в моем окне Win8.1 он имеет вид J:.. и с двумя виртуальными CD-приводами (Алкоголь и Виртуальный дисковод клонов) G:\ и N:.

Есть ли способ подобрать настоящую букву дисковода CD, а затем и виртуальную?

Обновление Интересно, что я обнаружил, что, проверяя, готов ли накопитель, можно извлечь только привод компакт-диска, поскольку он содержит носители, а виртуальный - нет. После того, как медиа подключено, оно поднято, и я думаю, что могу что-то сделать с этим и / или с ответом на двойной вопрос.

ComboBox cb = new ComboBox();
        var drives = DriveInfo.GetDrives();
        foreach (var drive in drives)
        {
            if (drive.IsReady == true)
            {
                if (drive.DriveType == DriveType.CDRom)
                {
                    cboDrives.Items.Add(drive);
                }
            }
        }

0 ответов

Другие вопросы по тегам