2016-03-28 81 views
1

我想編寫檢測閃存驅動器的程序。
但有一個問題。
代碼:檢測磁盤是否爲閃存驅動器

DriveInfo[] allDrives = DriveInfo.GetDrives(); 

     foreach (DriveInfo drive in DriveInfo.GetDrives()) 
     { 
      if (drive.DriveType == DriveType.Removable) 
      { 
      } 
     } 

它運作良好,但它檢測到光驅了。如何預防它?

+1

這表明您的計算機報告了cdrom驅動器的錯誤類型。你有一些光盤刻錄軟件可能導致這種情況嗎? –

+0

我不使用任何刻錄軟件,因爲我不真正刻錄CD和DVD的順便說一句。我的電腦現在正在運行Windows 10,但我將很快安裝Windows 7 – Mudzay

+0

我之前檢查過Windows 7,所以我只是爲了確保我也檢查了Windows 10。它仍然看起來像您的計算機報告了光驅的錯誤類型。它是否通過USB連接? (我沒有一個USB DVD驅動器來檢查。) –

回答

3

我沒有回答爲什麼你的代碼不工作。但是,如果你想檢測的USB設備,你也可以與WMI這樣的嘗試:

ManagementObjectCollection drives = new ManagementObjectSearcher(
    "SELECT Caption, DeviceID FROM Win32_DiskDrive WHERE InterfaceType='USB'" 
).Get(); 

的System.Management組件添加到您的項目做這樣的。

+0

謝謝,現在就測試。 – Mudzay

+0

我添加了System.Management程序集,但此代碼不起作用。我得到「無法找到類型或名稱空間名稱'ManagementObjectCollection'(您是否缺少使用指令或程序集引用?」)錯誤 – Mudzay

+0

在此處查看如何添加缺少的程序集:https://msdn.microsoft.com/ de-de/library/ee231595%28v = vs.110%29.aspx這裏也是一個例子:http://stackoverflow.com/questions/2157133/how-do-i-add-an-assembly-to-a -visual-studio-project-and-reference-it你必須將System.Management程序集添加到你的項目 – Fruchtzwerg

相關問題