當我在c#中使用此函數時,它能夠獲取驅動器盤符,但是當我移除USB盤並測試此功能時,它不會進入異常。C#中的USB驅動器清除代碼#
那麼有人可以幫我在功能代碼中出錯的地方嗎?
public void GetDriveLetter()
{
try
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_DiskDrive where InterfaceType='USB'");
foreach (ManagementObject queryObj in searcher.Get())
{
foreach (ManagementObject b in queryObj.GetRelated("Win32_DiskPartition"))
{
foreach (ManagementBaseObject c in b.GetRelated("Win32_LogicalDisk"))
{
// writer.WriteLine("{0}" + "\\", c["Name"].ToString()); // here it will print drive letter
usbDriveLetter = String.Format("{0}" + "\\", c["Name"].ToString());
}
}
}
}
catch (ManagementException e)
{
MessageBox.Show(e.StackTrace);
}
//CombinedPath = System.IO.Path.Combine(usbDriveLetter.Trim(), path2.Trim());
}
嗨Jethro ,,非常感謝您的快速回復,我嘗試了上面的代碼,但仍然沒有拋出和異常,當USB沒有放置。 – krikk
@krikk,請參閱我的更新回答。 – Jethro
非常感謝老闆,這是我的錯誤,沒有把它放在正確的循環中 – krikk