Я пытаюсь обнаружить привод 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:.. .и с двумя виртуальными дисководами (Alcohol и Virtual clone drive) G:\ и N:.
Есть ли способ подобрать реальную букву привода компакт-дисков сам по себе, а затем то же самое для виртуальных?
Обновление Интересно, что я обнаружил, что, проверяя, готов ли привод, подхватывается только привод компакт-дисков, поскольку он содержит носитель, а виртуальный привод - нет. Как только носитель смонтирован, он подхватывается, я думаю, что могу что-то сделать с этим и / или с дублирующимся ответом на вопрос.
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);
}
}
}