アプリで 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:\ は仕事用 PC の実際の CD-ROM、E:\ はアルコール 120% による仮想ドライブです。
光メディアを ISO に読み取るアプリを作成し、その ISO をアルコールにマウントして、ISO が正常かどうかをテストしています。
ISO を作成するときに、ユーザーが選択できるドライブは 1 つだけであり、ISO のテストでも同じです。
ISOをテストするアプリの一部が実行されているが、すべてのPCがCDドライブとしてD:\を持っているわけではない場合、ドライブ文字D:\を除外しようとすることができます。たとえば、私のWin8.1ボックスではJ:.. . および 2 つの仮想 CD ドライブ (アルコールおよび仮想クローン ドライブ) G:\ および N: を使用します。
実際の CD ドライブ文字を単独で取得してから、仮想ドライブ文字も同じにする方法はありますか?
更新 興味深いことに、ドライブの準備ができているかどうかをテストすると、メディアが含まれているのに対し、仮想ドライブには含まれていないため、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);
}
}
}