如何通过Graph Api一次性获取OneDrive所有目录及子目录数据
问题解答
可以通过单次调用直接获取全层级的文件夹列表,方法是使用Microsoft Graph的$expand查询参数递归展开子节点关系。
具体调用方法
你可以使用如下接口请求:
https://graph.microsoft.com/v1.0/me/drive/root?$expand=children($filter=folder ne null;$expand=children($filter=folder ne null;$expand=children($filter=folder ne null)))
参数说明
$expand=children:指定接口返回当前节点的完整子项数据,而非仅返回子项的引用地址$filter=folder ne null:过滤掉文件类型的项,仅保留文件夹,符合你只需要拉取文件夹列表的需求- 多层嵌套的
$expand=children:匹配你的目录层级,你当前的目录最深为3级(根目录→Folder1→Folder1b→Folder1b1),嵌套3层expand即可覆盖所有层级的文件夹
结果说明
接口返回的JSON数据中,每个文件夹节点下都会包含children字段,存储对应文件夹下的所有子文件夹,你可以直接提取所有带有folder属性的项,就是完整的全层级文件夹列表。
注意事项
Microsoft Graph单次请求的$expand嵌套上限为6层,如果你后续的目录深度超过6层,还是需要通过分页遍历的方式拉取全量数据。
内容的提问来源于stack exchange,提问作者user16252006
相关产品推荐
相关产品推荐

