C#中的GetDriveType?或者看看我的驱动器是否可移动?

C#中的GetDriveType?或者看看我的驱动器是否可移动?,c#,removable-storage,getdrivetype,C#,Removable Storage,Getdrivetype,我正在使用Environment.GetLogicalDrives();获取驱动器列表。我记得在C++中,我可以使用GoDeDeVyType来查找设备是否是CD、可移动、闪存等等,我想我想在我的应用程序中设置一个过滤器,只显示默认的CD和可移动。C#中的GetDriveType等价物是什么?谷歌只显示了我的黑客使用C++调用。 < P>是的,框架包含了类使用的枚举。请查看MSDN上的方法。是您要查找的类。您可以使用检索驱动器列表。您需要检查(枚举) 您还可以使用LINQ to对象查询驱动器: v

我正在使用Environment.GetLogicalDrives();获取驱动器列表。我记得在C++中,我可以使用GoDeDeVyType来查找设备是否是CD、可移动、闪存等等,我想我想在我的应用程序中设置一个过滤器,只显示默认的CD和可移动。C#中的GetDriveType等价物是什么?谷歌只显示了我的黑客使用C++调用。

< P>是的,框架包含了类使用的枚举。请查看MSDN上的方法。

是您要查找的类。

您可以使用检索驱动器列表。您需要检查(枚举)

您还可以使用LINQ to对象查询驱动器:

var drives = from drive in DriveInfo.GetDrives()
             where drive.DriveType == DriveType.Removable
             select drive;

foreach(var drive in drives)
{
    Console.WriteLine(drive.Name);
}
像上面提到的@TheCodeKing一样,您也可以使用WMI查询驱动器信息

例如,您可以通过以下方式查询USB记忆棒:

ManagementObjectCollection drives = new ManagementObjectSearcher(
    "SELECT Caption, DeviceID FROM Win32_DiskDrive WHERE InterfaceType='USB'"
).Get();
如果要使用WMI,请添加对System.Management程序集的引用

如果要使用此数据填充Windows窗体应用程序中的组合框,则需要将结果绑定到组合框控件

例如:

private void Form1_Load(object sender, EventArgs e)
{
    var drives = from drive in DriveInfo.GetDrives()
                 where drive.DriveType == DriveType.Removable
                 select drive;

    comboBox1.DataSource = drives.ToList();
}
概括地说:

  • 将ComboBox控件添加到Windows窗体(将其从工具箱拖放到窗体上)
  • 查询可移动驱动器
  • 将结果绑定到组合框

  • 您已经为此使用了WMI,请检查此项以获取信息和示例。

    还请注意,如果要包括CD-Rom驱动器,则在
    DriveType
    枚举中不认为它们是“可移动的”。您可能还想选中
    | drive.DriveType==DriveType.CDRom
    谢谢大家的帮助,但是有人能告诉我如何在我的c#winform应用程序中添加一个下拉菜单,然后在其中填充驱动程序标签和注明我答案的字母,以显示如何将这些结果绑定到Windows窗体中的ComboBox控件吗应用程序。+1用于提及WMI。以下是使用WMI查询驱动器信息的示例:
    private void Form1_Load(object sender, EventArgs e)
    {
        var drives = from drive in DriveInfo.GetDrives()
                     where drive.DriveType == DriveType.Removable
                     select drive;
    
        comboBox1.DataSource = drives.ToList();
    }