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

使用Graph SDK在SharePoint中能否仅按文件名搜索文件?

仅按文件名搜索SharePoint文件的Graph SDK实现

你的问题在于默认的Search方法会全局检索文件的内容、元数据等所有字段,要限定只搜索文件名,有两种可靠的实现方式:

方法1:使用filename:搜索限定符

Graph API的搜索语法支持通过filename:前缀指定仅匹配文件名,直接修改你的搜索语句即可,这种方式会自动递归搜索整个驱动器下的所有子文件夹:

var request = _graphServiceClient
    .Drives[id]
    .Root
    .Search($"filename:{searched}")
    .Request();

如果需要模糊匹配(比如文件名包含关键词),可以直接在关键词前后加通配符*:

var request = _graphServiceClient
    .Drives[id]
    .Root
    .Search($"filename:*{searched}*")
    .Request();

方法2:使用Filter精准筛选文件名

如果只需要搜索指定目录下的文件(不递归子文件夹),可以用Filter结合contains或startswith方法直接过滤name字段:

// 匹配文件名包含指定关键词的文件(仅当前目录)
var request = _graphServiceClient
    .Drives[id]
    .Root
    .Children
    .Request()
    .Filter($"contains(name, '{searched}')");

如果需要递归搜索所有子文件夹,你需要自己实现递归遍历逻辑,或者结合Expand("children")处理多层目录(注意分页限制)。

注意事项

  • 如果搜索关键词包含特殊字符(如单引号、空格),需要先进行转义处理,避免Graph API请求语法错误。
  • 两种方式中,方法1更贴近你原本的递归搜索需求,方法2适合精确限定目录的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 18:35:36