2016-03-19 44 views
0

問題很簡單,我想列出我的電腦上的所有驅動器。如何列出連接到電腦的所有驅動器,甚至是手機?

我們都知道如何列出與驅動器:

DriveInfo.GetDrives(); 

Directory.GetLogicalDrives(); 

但是如果我需要列出我的手機作爲一個驅動器,我可以看到它在資源管理器中,那麼爲什麼不這樣做的結果上市2種方法?

我用2種手機測試了這種方法。

  • 安卓LG G4筆LTE(內部SD卡和,所以在這裏你有2個驅動器)
  • 的Windows電話:1020的Lumia(無SD卡)

不過,沒有結果。

請幫忙!

+0

DriveInfo不提供偵聽USB密鑰插入的方法。看看這個http://stackoverflow.com/questions/620144/detecting-usb-drive-insertion-and-removal-using-windows-service-and-c-sharp – Mainak

+0

感謝您的評論,但它只是說如何檢測設備何時連接,我需要瀏覽設備並獲取文件。 – Yogurtu

回答

0

那些手機不是驅動器,它們是WPD devices

如果你只想列出這些,Windows包括COM API。

Here’s a C++ sample.

有可能使用COM互操作做同樣沒有C++,C#中。安裝需要一些時間(您必須引用兩個COM類型庫,PortableDeviceApiLib和PortableDeviceTypesLib,並且解決COM類型庫導入程序的一些問題),並且要學習API,但我曾經爲某些客戶端做過這個工作,解決方案行得通。


然而,如果你不僅需要MTP裝置,但在Windows資源管理器下「此PC」顯示任何東西(可以是任何東西,一些第三方應用程序或驅動程序註冊自己的外殼擴展添加的東西「這臺電腦「),那麼你將需要完全不同的API,但它又是COM API。 Windows提供IShellFolder interface來枚舉東西。

這是C#中的一些article about something similar

相關問題