gpt4 book ai didi

c# - 在 C# 中获取驱动类型?或查明我的驱动器是否可移动?

转载 作者:太空狗 更新时间:2023-10-29 22:21:12 24 4
gpt4 key购买 nike

我正在使用 Environment.GetLogicalDrives();获取驱动器列表。我记得在 C++ 中,我可以使用 GetDriveType 来查找设备是 CD、可移动设备、闪存设备等,我想我想在我的应用程序中放置一个过滤器,以便在默认情况下仅显示 CD 和可移动设备。 C# 中的 GetDriveType 等效项是什么?谷歌只向我展示了使用 c++ 调用的技巧。

最佳答案

您可以使用 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();

如果要使用 WMI,请添加对 System.Management 程序集的引用。

如果您想用这些数据填充 Windows 窗体应用程序中的 ComboBox,您需要将结果绑定(bind)到 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. 将结果绑定(bind)到 ComboBox。

关于c# - 在 C# 中获取驱动类型?或查明我的驱动器是否可移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/623254/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com