我使用以下代码从 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 吗?谢谢!
您提到的
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