问题很简单,我想列出我电脑上的所有硬盘。
我们都知道如何列出驱动器:
DriveInfo.GetDrives();
Directory.GetLogicalDrives();
但是如果我需要将我的CELLPHONE列为驱动器,我可以在资源管理器上看到它,那么为什么没有列出这两种方法的结果?
我用2种手机测试了这种方法。
仍然没有结果。
请帮忙!
答案 0 :(得分:0)
这些手机不是驱动器,而是WPD devices。
如果您只想列出这些内容,Windows会为此包含COM API。
使用COM互操作在C#中,没有C ++也可以这样做。设置需要一些时间(您必须引用两个COM类型的库,PortableDeviceApiLib和PortableDeviceTypesLib,并解决COM类型库导入器的一些问题)并且还要学习API,但我曾经为某个客户端做过这个,解决方案工作得很好。
但是,如果您不仅需要MTP设备,而且还需要Windows资源管理器在“此PC”下显示的任何内容(可以是任何东西,某些第三方应用程序或驱动程序注册自己的外壳扩展,将内容添加到“此PC”),然后你需要完全不同的API,但它又是COM API。 Windows提供IShellFolder interface来枚举内容。
这是C#中的一些article about something similar。