问题
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)?
回答1:
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...
回答2:
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
来源:https://stackoverflow.com/questions/39965330/getting-microsoft-graph-drive-items-by-path-using-the-net-sdk