如何使用 Microsoft Graph 获取文件夹中的共享点项目列表?
How do I get list of sharepoint items in a folder using Microsoft Graph?
我可以进行图表调用以获取列表中的所有项目,但我们如何 get/filter 列表文件夹中的项目?
好像不是直接实现的方法。如果我使用下面的过滤器,我会收到错误消息“Field 'FileDirRef' cannot be referenced in filter or orderby as it is not indexed.”。
&filter=fields/FileDirRef eq '/sites/lz/Lists/cl/folder'
作为解决方法,我们可以获取列表项,然后根据代码中的 FileDirRef 字段过滤这些项。
https://graph.microsoft.com/v1.0/sites/lz.sharepoint.com,{Site GUID},{Web GUID}/lists/{List GUID}/items?expand=fields(select=id,Title,FileDirRef)
您可以使用以下查询来检索子文件夹下的项目:
https://graph.microsoft.com/v1.0/sites/{site-id}/lists/{list-id}/drive/root:/{folder-url}:/children
这是一个使用 Microsoft Graph .NET Client Library 的例子:
var folderUrl = "/Archive/2018"; //relative path
var site = graphClient.Sites[siteId];
var list = site.Lists[listId];
var items = await list.Drive.Root.ItemWithPath(folderUrl).Children.Request().Expand("ListItem").GetAsync();
//print list item details
foreach (var item in items)
{
Console.WriteLine(item.ListItem.WebUrl);
}
我可以进行图表调用以获取列表中的所有项目,但我们如何 get/filter 列表文件夹中的项目?
好像不是直接实现的方法。如果我使用下面的过滤器,我会收到错误消息“Field 'FileDirRef' cannot be referenced in filter or orderby as it is not indexed.”。
&filter=fields/FileDirRef eq '/sites/lz/Lists/cl/folder'
作为解决方法,我们可以获取列表项,然后根据代码中的 FileDirRef 字段过滤这些项。
https://graph.microsoft.com/v1.0/sites/lz.sharepoint.com,{Site GUID},{Web GUID}/lists/{List GUID}/items?expand=fields(select=id,Title,FileDirRef)
您可以使用以下查询来检索子文件夹下的项目:
https://graph.microsoft.com/v1.0/sites/{site-id}/lists/{list-id}/drive/root:/{folder-url}:/children
这是一个使用 Microsoft Graph .NET Client Library 的例子:
var folderUrl = "/Archive/2018"; //relative path
var site = graphClient.Sites[siteId];
var list = site.Lists[listId];
var items = await list.Drive.Root.ItemWithPath(folderUrl).Children.Request().Expand("ListItem").GetAsync();
//print list item details
foreach (var item in items)
{
Console.WriteLine(item.ListItem.WebUrl);
}