如何使用Windows Portable Devices C++API获取MTP设备公开的文件夹中的所有文件(对象)的列

How to get the list of all the files(objects) in a folder exposed by an MTP device using Windows Portable Devices C++ API?

本文关键字:文件夹 文件 的列 对象 Devices Portable Windows 何使用 C++API 获取 MTP      更新时间:2023-10-16

可以枚举MTP设备文件系统中的所有文件,然后获取系统中每个文件/文件夹的对象id。

我的问题是:

  1. 有没有一种方法可以确定对象是文件还是文件夹
  2. 找到文件夹后,如何获取其中所有文件(对象)的列表

我已经查看了msdn网站上的程序员参考页面,但没有发现任何相关内容。我是不是错过了什么?

谢谢!

  1. 使用IPortableDeviceValues(从IPortableDeviceProperties::GetValues()方法获得),查询WPD_OBJECT_CONTENT_TYPE。如果对象是文件夹,它将返回WPD_CONTENT_TYPE_FOLDER

  2. 使用IPortableDeviceContent::EnumObjects()方法,可以枚举任何文件夹对象的内容。