您好我需要在c#
的下拉菜单中检测所有可移动媒体驱动器我们将不胜感激任何帮助
谢谢
答案 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 :(得分:1)
您已使用WMI,请查看此link以获取相关信息和示例。