2016-03-15 108 views
3

我正在處理一個明顯錯誤的C#代碼。 我試圖用WMI查詢獲取pendrive數據,並在繼續操作之後,檢查查詢是否返回0行以避免錯誤。如何檢查WMI查詢是否返回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方法不起作用。我如何以正確的方式檢查它? 而且,這是獲取pendrive數據的正確方法嗎?

回答

3

使它萬無一失:

if (drive==null || drive.Count == 0)) 
{ 
    MessageBox.Show("Failed to read data."); 
    Application.Exit(); 
} 
+0

@AlexH:你說得對。修改答案。 –

+0

工作得很好,謝謝。我認爲這是不正常的,因爲另一個錯誤。 –

2

使用Count

if (drive.Count == 0) 
{ 
    MessageBox.Show("Failed to read data."); 
    Application.Exit(); 
}