如何使用 Windows 便携式设备 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?
可以枚举 MTP 设备文件系统中的所有文件,然后获取系统中每个 file/folder 的对象 ID。
我的问题是:
- 有没有一种方法可以判断对象是文件还是文件夹?
- 找到文件夹后如何获取其中所有文件(对象)的列表?
我查看了 msdn 网站中的程序员参考页面,但没有找到任何相关内容。我错过了什么吗?
谢谢!
如果对象是文件夹,则使用 IPortableDeviceValues
(which you get from the IPortableDeviceProperties::GetValues()
method), query for WPD_OBJECT_CONTENT_TYPE
. It will return WPD_CONTENT_TYPE_FOLDER
。
使用IPortableDeviceContent::EnumObjects()
方法,可以枚举任意文件夹对象的内容。
可以枚举 MTP 设备文件系统中的所有文件,然后获取系统中每个 file/folder 的对象 ID。
我的问题是:
- 有没有一种方法可以判断对象是文件还是文件夹?
- 找到文件夹后如何获取其中所有文件(对象)的列表?
我查看了 msdn 网站中的程序员参考页面,但没有找到任何相关内容。我错过了什么吗?
谢谢!
如果对象是文件夹,则使用
IPortableDeviceValues
(which you get from theIPortableDeviceProperties::GetValues()
method), query forWPD_OBJECT_CONTENT_TYPE
. It will returnWPD_CONTENT_TYPE_FOLDER
。使用
IPortableDeviceContent::EnumObjects()
方法,可以枚举任意文件夹对象的内容。