You need to enable JavaScript to run this app. 如何通过REST接口单次获取SharePoint文档库子文件夹下所有文件
优惠活动
大模型
产品
解决方案
定价
更多

如何通过REST接口单次获取SharePoint文档库子文件夹下所有文件

SharePoint 单次REST请求获取根文件夹下所有子层级文件方案

可以实现单次请求获取所有子文件夹内的文件,方案基于 SharePoint 原生 REST 接口 + CAML 查询实现,兼容 SharePoint 2013 及以上版本、SharePoint Online 环境。


核心实现逻辑

通过 GetItems 接口配合递归查询作用域参数,无需循环调用单文件夹查询接口:

  • 用CAML查询的 Scope='RecursiveAll' 属性指定查询范围覆盖所有子层级
  • 过滤参数 FSObjType=0 排除子文件夹项,仅返回文件结果
  • 通过 FolderServerRelativeUrl 指定要查询的根文件夹路径,避免返回整个文档库的内容

请求示例

请求地址(POST请求)

https://<租户域名>/sites/<站点路径>/_api/web/lists/getbytitle('<文档库显示名称>')/GetItems

必填请求头

Accept: application/json;odata=verbose
Content-Type: application/json;odata=verbose
X-RequestDigest: <当前会话的请求摘要值>

请求体参数

{
    "query": {
        "__metadata": { "type": "SP.CamlQuery" },
        "ViewXml": "<View Scope='RecursiveAll'><Query><Where><Eq><FieldRef Name='FSObjType' /><Value Type='Integer'>0</Value></Eq></Where></Query></View>",
        "FolderServerRelativeUrl": "<根文件夹的服务器相对路径,例:/sites/xxx/共享文档/目标根文件夹>"
    }
}

结果说明

接口返回的 d.results 数组即为所有子文件夹下的全部文件集合,包含文件路径、修改时间、创建人、文件大小等标准元数据字段,你可以根据需求在CAML的<ViewFields>节点中自定义返回字段。


注意事项

  • 当目标路径下的文件总数超过5000时会触发列表视图阈值限制,需要给FSObjType字段添加索引或者在CAML中增加分页参数处理
  • 接口返回的文件范围和当前调用账号的权限一致,无读取权限的子文件夹内的文件不会出现在结果中

内容的提问来源于stack exchange,提问作者someone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 15:54:10