如何检查WMI查询是否返回0行?

4

我正在处理一段明显错误的C#代码。 我试图通过WMI查询获取U盘数据,然后在继续操作后检查查询是否返回了0行,以避免出现错误。

ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_USBDevice");
ManagementObjectCollection drive = searcher.Get();
if (drive == null)
{
    MessageBox.Show("Failed to read data.");
    Application.Exit();
}

显然,方法drive == null是不起作用的。我应该如何以正确的方式检查它? 并且,这是否是获取闪存驱动器数据的正确方式?
2个回答

5
让其傻瓜式操作:
if (drive==null || drive.Count == 0))
{
   MessageBox.Show("Failed to read data.");
   Application.Exit();
}

工作得很好,谢谢。我以为它不起作用是因为另一个错误。 - Wiktor Zawierucha

2
使用 Count 方法:
if (drive.Count == 0)
{
    MessageBox.Show("Failed to read data.");
    Application.Exit();
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接