使用 CAML 查询检索 SharePoint 文档 ID

问题描述 投票:0回答:1

我使用以下代码从 SharePoint Online 检索文档和文件夹列表:

Web web = sp.Web;

string spdocumenturl = "/sites/MySite/Shared%20Documents/My%20Site%20Documents/MyFolder";

Microsoft.SharePoint.Client.List documentlist = web.Lists.GetByTitle("Documents");
CamlQuery query = new CamlQuery();
query.FolderServerRelativeUrl = spdocumenturl;
query.ViewXml = "<View Scope='RecursiveAll'><RowLimit>5000</RowLimit></View>";
ListItemCollection listItems = documentlist.GetItems(query);

sp.Load(listItems);
sp.ExecuteQuery();

该代码可以检索我正在查找的所有文件/文件夹,但我不确定如何获取文件的 ID。有一个名为

ID
的属性,但它的数字非常小(例如 3),所以这是不对的。还有一个名为
UniqueId
的属性,但与 Microsoft Graph 所说的 ID 不匹配。

我的最终目标是存储 ID 并稍后由另一个应用程序使用它们,该应用程序根据 ID 从 Microsoft Graph API 检索文档内容,因此它必须匹配。

有人可以告诉我如何通过我的结果检索文档 ID 吗?谢谢!

c# sharepoint microsoft-graph-api sharepoint-online caml
1个回答
0
投票

您提到的

ID
listItemId,调用Graph API时可以使用它。

listItem
可以与 driveItem 具有
关系
,代表驱动器中存储的文件、文件夹或其他项目。

您应该能够指定相对 URL 来访问列表项

GET https://graph.microsoft.com/v1.0/sites/<tenant_name>.sharepoint.com:/sites/{site_name}:/lists/{list_title}/items/{list_item_id}/driveItem

根据您的示例,

site_name
MySite
list_title
Documents

GET https://graph.microsoft.com/v1.0/sites/tenant.sharepoint.com:/sites/MySite:/lists/Documents/items/3/driveItem
最新问题
© www.soinside.com 2019 - 2024. All rights reserved.