det*_*ale 2 c# microsoft-graph-sdks microsoft-graph-api
我正在尝试使用 Microsoft Graph (C# SDK) 在 SharePoint 中的现有文件夹下创建一个文件夹。我知道使用 Graph API 时在 SharePoint 或 OneDrive 上创建文件夹应该是相同的,但我仍然找不到任何好的在线参考。我找到的唯一一篇文章是一篇旧文章,其中只有一个 JavaScript 示例。
我有一个根文件夹A,我想B在A.
这是代码:
var driveRequestBuilder = graphClient
.Sites[SharePointSiteId]
.Lists[ListId]
.Drive;
var folderRequestBuilder = driveRequestBuilder
.Root
.ItemWithPath("A");
var folderDriveItem = folderRequestBuilder
.Request()
.GetAsync()
.Result; // This returns the root folder "A"'s info
var subFolderDriveItem = new DriveItem()
{
Name = "B",
Folder = folderDriveItem.Folder
};
var result = folderRequestBuilder
.Request()
.CreateAsync(subFolderDriveItem)
.Result;
Run Code Online (Sandbox Code Playgroud)
最后一行代码抛出一个异常AggregateException(因为 TPL),其中包含内部异常:
var driveRequestBuilder = graphClient
.Sites[SharePointSiteId]
.Lists[ListId]
.Drive;
var folderRequestBuilder = driveRequestBuilder
.Root
.ItemWithPath("A");
var folderDriveItem = folderRequestBuilder
.Request()
.GetAsync()
.Result; // This returns the root folder "A"'s info
var subFolderDriveItem = new DriveItem()
{
Name = "B",
Folder = folderDriveItem.Folder
};
var result = folderRequestBuilder
.Request()
.CreateAsync(subFolderDriveItem)
.Result;
Run Code Online (Sandbox Code Playgroud)
我想知道创建子文件夹的正确语法。
如果是子文件夹,则创建文件夹的端点应该是
POST https://graph.microsoft.com/v1.0/sites/{site-id}/lists/{list-id}/drive/root:/{path}:/children
Content-Type: application/json
{
"name": "New folder name",
"folder": { },
"@microsoft.graph.conflictBehavior": "rename"
}
Run Code Online (Sandbox Code Playgroud)
示例msgraph-sdk-dotnet:
var folder = new DriveItem
{
Name = "<sub folder name>",
Folder = new Folder()
};
var result = await graphClient
.Sites[siteId]
.Lists[listId]
.Drive
.Root
.ItemWithPath("<folder path>")
.Children
.Request()
.AddAsync(folder);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4282 次 |
| 最近记录: |