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

能否通过Graph API按createdDateTime筛选SharePoint文件夹中的文件?

按创建日期筛选SharePoint文件夹文件的解决方案

首先明确:/drives/{driveId}/items/{folderId}/children端点不支持对createdDateTime字段使用$filter筛选,这是Microsoft Graph API的固有限制,所以你直接添加该筛选条件会返回无效请求错误。

下面是三种可行的解决方法:

方法1:利用Graph搜索功能精准查询

借助SharePoint的搜索能力,结合文件夹ID和创建日期条件完成筛选:

GET https://graph.microsoft.com/v1.0/drives/{driveId}/root/search(q='created:>=2024-05-20T00:00:00Z AND parentid:{folderId}')

注意事项:

  • 日期必须使用ISO 8601 UTC格式(如2024-05-20T00:00:00Z),计算过去24小时的时间时,需基于当前UTC时间减去24小时生成对应格式字符串。
  • parentid:{folderId}用于限定查询范围为目标文件夹,避免返回其他位置的文件。

方法2:修正/items端点的筛选请求

你之前用/drives/{driveId}/items的思路可行,但错误源于$expand=analytics的干扰以及可能的格式问题。调整后的请求如下:

GET https://graph.microsoft.com/v1.0/drives/{driveId}/items?$filter=parentReference/id eq '{folderId}' and createdDateTime ge 2024-05-20T00:00:00Z

注意事项:

  • 移除$expand=analytics参数,该扩展会与筛选逻辑冲突,引发通用处理异常。
  • 日期需使用ISO 8601 UTC格式,无需加引号,Graph会自动识别为日期类型。

方法3:客户端本地筛选(适合小文件量场景)

如果目标文件夹内文件数量较少,可以先获取所有文件,再在本地代码中过滤:

GET https://graph.microsoft.com/v1.0/drives/{driveId}/items/{folderId}/children

拿到返回结果后,通过代码判断每个文件的createdDateTime是否晚于过去24小时即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 11:06:07