在c#中获取可移动媒体驱动器列表

时间:2011-08-30 08:01:55

标签: c# detect removable

您好我需要在c#

的下拉菜单中检测所有可移动媒体驱动器

我们将不胜感激任何帮助

谢谢

2 个答案:

答案 0 :(得分:12)

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

var drives = DriveInfo.GetDrives();
foreach (var drive in drives)
{
    if (drive.DriveType == DriveType.Removable)
    {
        Console.WriteLine(drive.Name);
    }
}

您还可以使用LINQ-to-Objects查询驱动器:

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窗体应用程序中的ComboBox,则需要将结果绑定到ComboBox控件。

例如:

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();
}

概括说明:

  1. 将一个ComboBox控件添加到Windows窗体(将其拖放到工具箱中的窗体上)
  2. 查询可移动驱动器。
  3. 将结果绑定到ComboBox。

答案 1 :(得分:1)

您已使用WMI,请查看此link以获取相关信息和示例。