我正在使用Environment.GetLogicalDrives();获取驱动器列表。我记得在c++中,我可以使用GetDriveType来找出设备是CD、removable、flash等等,我想在我的应用程序中添加一个过滤器,默认情况下只显示CD和removable。C#中的GetDriveType等效项是什么?谷歌只向我展示了使用c++调用的技巧。
发布于 2009-03-08 08:08:14
是的,框架包含DriveInfo类使用的DriveType枚举。看看MSDN上的GetDrives()方法。
发布于 2011-08-30 16:08:47
您可以使用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来查询驱动器信息。
例如,您可以通过以下方式查询U盘:
ManagementObjectCollection drives = new ManagementObjectSearcher(
"SELECT Caption, DeviceID FROM Win32_DiskDrive WHERE InterfaceType='USB'"
).Get();如果要使用System.Management,请添加对WMI程序集的引用。
如果要用此数据填充Windows Forms应用程序中的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();
}概括地说:
发布于 2009-03-08 08:08:24
DriveInfo就是你要找的类。
https://stackoverflow.com/questions/623254
复制相似问题