0

アプリで 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);
                }
            }
        }
4

0 に答える 0