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