You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取SharePoint及OneDrive中指定日期后修改的文件?

关于获取SharePoint/OneDrive指定日期后修改文件的问题解答

1. 是否存在获取指定日期后修改文件的方法?

有,以下几种可行方案:

  • 修正/search接口用法:你之前的搜索语法有误,Graph Search的查询字段用lastmodifiedtime而非lastModifiedDateTime,格式也需调整。正确示例:drives/{drive-id}/root/search(q='lastmodifiedtime>=2023-07-31T18:56:29Z')。如果搜索结果仍有偏差,可结合$filter参数在返回结果中二次筛选lastModifiedDateTime字段。
  • 正确使用delta端点:虽然该端点默认仅保留最近2个月的变更记录,但如果要同步早于2个月的数据,可先不带时间参数获取全量delta快照,后续再用时间参数追踪增量;返回结果中出现早于指定日期的文件,通常是因为文件元数据(如权限、标签)被修改而非内容变更,自行过滤lastModifiedDateTime字段即可得到目标文件。
  • 文档库列表查询:SharePoint文档库本质是列表,可通过/sites/{site-id}/lists/{list-id}/items?$filter=lastModifiedDateTime ge 2023-07-31T18:56:29Z&$expand=fields直接筛选,该端点支持标准OData筛选规则。

2. 是否只能通过递归遍历子项并自行进行筛选?

不是必须的,递归遍历只是兜底方案。只有当上述接口都无法满足需求(比如需要超早期历史数据,且站点结构复杂无法通过搜索/列表查询覆盖)时,才需要采用这种方式。但该方法效率较低,针对大型库建议优先使用前面提到的接口方案。

3. 是否存在无需递归查询即可获取全部数据的端点?

存在:

  • /search接口:无需递归,可直接针对整个Drive或站点范围搜索符合时间条件的文件,调整语法后即可生效。
  • 文档库列表端点:针对单个文档库,使用/sites/{site-id}/lists/{list-id}/items加$filter参数,可直接获取所有符合条件的文件;如果需要覆盖整个站点的所有文档库,可先枚举站点下的所有文档库,再逐个调用该端点汇总结果,全程无需递归遍历文件层级。
  • delta端点:首次全量同步后,后续增量查询无需递归,直接获取变更记录即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 16:27:21