【发布时间】:2012-07-11 03:34:56
【问题描述】:
我使用 SHBrowseForFolder() 在 MTP 设备上选择一个文件夹。然后我想从那里复制文件。 IWMDMStorageControl 接口(来自 Windows Media Format 11 SDK)似乎很合适,但是如何从 SHBrowseForFolder() 返回的带有 PIDL 的对象获取它?
(我问过关于获取IWMDMStorageControl接口的类似问题:How to get IPortableDeviceContent interface for given PIDL)
【问题讨论】:
-
起点完全错误,MTP 确实不 授予对文件系统的访问权限。 differencebetween.net/technology/difference-between-mtp-and-msc
-
我知道,这就是为什么我询问 IWMDMStorageControl 接口,而不是常规 FileCopy。我只需要知道如何通过 SHBrowseForFolder 和 WMDM 或 WPD 接口/方法在用户选择之间建立对应关系。在 Win.Explorer 或 SHBrowseForFolder 中,用户可以在 MTP 设备(在我的情况下为三星平板电脑)上看到常规的树结构,就像磁盘驱动器一样。如果不使用 SHBrowseForFolder,如何在那里选择文件夹?
-
实际上它是这些设备上的真实文件系统。整个问题是他们不提供 USB 驱动模式,而只提供 MTP 或 PTP。
-
您是否找到一种方法来至少检索与 SHBrowseForFolder() 为所选 MTP 文件夹返回的 PILD 关联的显示名称?
-
是的,我会把代码作为答案。