Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Getting Microsoft Graph Drive items by path using the .NET SDK

As it is documented, using the Microsoft Graph REST API you can (among other options) get an item by Id or Path. This works fine, as expected:

GET /me/drive/items/{item-id}/children
GET /me/drive/root:/{item-path}:/children

Using the .NET SDK, I can get a folder by Id (i.e. the first case):

var items = await graphClient.Me.Drive.Items[myFolderId].Children.Request().GetAsync();

However, I couldn't find how (using the .NET SDK) to do the same, but specifying a path instead of an Id (i.e. the second case).

I don't want to find an Id of a path I already know, to create the request for it. Right?

I'm afraid is not possible to do this using the current SDK (Microsoft Graph Client Library 1.1.1)?

like image 899
horacioj Avatar asked Oct 10 '16 19:10

horacioj


2 Answers

This is how:

var items = await graphClient.Me.Drive.Root
                  .ItemWithPath("/this/is/the/path").Children.Request().GetAsync();

Use just the plain path. Don't include the ":", and don't include the "/drive/root:/".

it was obvious, now that I see it...

like image 137
horacioj Avatar answered Sep 21 '22 02:09

horacioj


In order to use the Microsoft Graph SDK with Office365 for Business/Sharepoint/Teams, replace the "Me" in the code with "Groups[teamId/groupId]".

Like this:

var items = await graphClient.Groups["teamId/groupId"].Drive.Root
    .ItemWithPath("/this/is/the/path").Children.Request().GetAsync();

If you use the Microsoft Graph Explorer, you can find out your Team/Group Id: https://developer.microsoft.com/en-us/graph/graph-explorer

like image 42
George Avatar answered Sep 21 '22 02:09

George