如何在.NET中通过Microsoft Graph API按路径检索SharePoint的DriveItem?
使用Microsoft Graph .NET SDK按指定路径检索Drive项目
前提准备
首先确保已安装Microsoft Graph .NET SDK:
dotnet add package Microsoft.Graph
如果需要身份验证相关支持,可根据你的认证场景安装对应包(比如Microsoft.Identity.Client用于委托/应用权限认证)。
核心实现代码
对应你提供的REST接口,.NET SDK中可以通过ItemWithPath方法直接指定目标路径,然后获取该路径下的子项。以下是完整示例:
using Microsoft.Graph; using Microsoft.Identity.Client; // 初始化GraphServiceClient(以应用权限认证为例) var clientId = "你的客户端ID"; var tenantId = "你的租户ID"; var clientSecret = "你的客户端密钥"; var scopes = new[] { "https://graph.microsoft.com/.default" }; var credential = new ClientSecretCredential(tenantId, clientId, clientSecret); var graphClient = new GraphServiceClient(credential, scopes); // 替换为实际的siteID、driveID和目标路径 var siteId = "{{siteID}}"; var driveId = "{{driveID}}"; var targetPath = "MY_PATH"; // 执行检索请求 var children = await graphClient.Sites[siteId] .Drives[driveId] .Root .ItemWithPath(targetPath) .Children .Request() .GetAsync(); // 处理返回的子项集合 foreach (var item in children) { Console.WriteLine($"项目名称: {item.Name}, ID: {item.Id}"); }
代码对应关系说明
Sites[siteId].Drives[driveId]:对应REST接口中的/sites/{{siteID}}/drives/{{driveID}}部分Root.ItemWithPath(targetPath):对应REST中的/root:/MY_PATH:路径语法,直接映射指定的相对路径.Children:对应REST中的/children,获取该路径下的所有子项目
注意事项
- 确保你的应用已被授予足够的权限(比如
Files.Read、Sites.Read.All等,根据实际场景选择) - 路径中的特殊字符无需手动编码,SDK会自动处理
- 若需要分页获取大量子项,可使用
PageIterator来遍历所有结果
内容的提问来源于stack exchange,提问作者Ali
相关产品推荐
相关产品推荐

