检测磁盘是否为闪存驱动器

Detecting if disk is flash drive

我想编写检测闪存驱动器的程序。
但是有一个问题。
代码:

DriveInfo[] allDrives = DriveInfo.GetDrives();

foreach (DriveInfo drive in DriveInfo.GetDrives())
{
    if (drive.DriveType == DriveType.Removable)
    {
    }
}

它运行良好,但它也能检测到 cdrom。如何预防?

我不知道为什么你的代码不起作用。但是如果你想检测 USB 设备,你也可以像这样用 WMI 试试:

ManagementObjectCollection drives = new ManagementObjectSearcher(
    "SELECT Caption, DeviceID FROM Win32_DiskDrive WHERE InterfaceType='USB'"
).Get();

将 System.Management 程序集添加到您的项目中,就像这样。