如何区分USB和软盘设备?

Bre*_*int 4 c# usb floppy device

我试图通过循环DriveInfo.GetDrives()结果来识别驱动器类型.
但是对于USB和软盘我都得到了相同的DriveType.Removable价值.

我该如何区分它们?

ash*_*999 7

您可以使用WMI(Windows Management Instrumentation)获取的不仅仅是DriveInfo类中的内容.在这种情况下,您可以获得接口类型,它将是USB驱动器的"USB".

示例代码如下.您需要添加引用System.Management.

using System.Management;

try
{
    ManagementObjectSearcher searcher =
        new ManagementObjectSearcher("root\\CIMV2",
        "SELECT * FROM Win32_DiskDrive");

    foreach(ManagementObject queryObj in searcher.Get())
    {
        foreach(ManagementObject o in queryObj.GetRelated("Win32_DiskPartition"))
        {
            foreach(ManagementBaseObject b in o.GetRelated("Win32_LogicalDisk"))
            {
                Debug.WriteLine("    #Name: {0}", b["Name"]);
            }
        }
        // One of: USB, IDE
        Debug.WriteLine("Interface: {0}", queryObj["InterfaceType"]);
        Debug.WriteLine("--------------------------------------------");
    }
}
catch (ManagementException f)
{
    Debug.WriteLine(f.StackTrace);
}
Run Code Online (Sandbox Code Playgroud)

作为参考,此MSDN页面记录了可访问属性的完整列表(因为您没有获得自动完成功能).

  • 我认为没有理由为这里的迟到答案道歉.这不是一个论坛,如果我没有弄错的话,鼓励未回答的问题. (5认同)