无法在列表中创建文件夹

时间:2019-07-24 14:40:36

标签: c# microsoft-graph sharepoint-online microsoft-graph-sdks

我正在尝试在列表中创建文件夹,但以下操作无效:

var folder = new DriveItem
{
    Name = plan.Title,
    Folder = new Folder()
};

await graphServiceClient
    .Sites["ourdomain.sharepoint.com:/sites/ITOddeleni:"]
    .Lists["Planner"]
    .Drive
    .Root
    .Children
    .Request()
    .AddAsync(folder);

我将这些用作其他呼叫的参数,我可以保留它还是期望GUID?

编辑1

错误引号是代码:

BadRequest
Message: Url specified is invalid.

因此,我假设.Sites.Lists应该具有GUID,但是用网站ID和列表ID替换网站URL后,我得到以下信息:

Code: -1, Microsoft.SharePoint.Client.ResourceNotFoundException
Message: Cannot find resource for the request Microsoft.FileServices.FileService/Sites('50cb05fa-27f9-45bf-a5f3-5f82e0e2eb00')/lists('ad52e785-c9b7-4106-af7b-a3394462875c')/drive/.

编辑2

我尝试通过Graph Explorer创建文件夹,在列表中找到该文件夹​​的内容类型ID,并使用POST https://graph.microsoft.com/v1.0/sites/50cb05fa-27f9-45bf-a5f3-5f82e0e2eb00/lists/ad52e785-c9b7-4106-af7b-a3394462875c/items

具有此请求正文

{
"Title" : "Test2",
"contentType": { "id": "0x012000FC4989A03C9F7845AD8C206E2F47A0FD" }
}

现在将创建文件夹,但是呼叫需要标题,但不接受名称,这将导致创建的文件夹中没有名称(标题)。编辑:它接受小写的N的“名称”,但名称仍未显示在列表中。试图将其作为“ BaseName”,“ FileLeafRef”和Folder的其他一些内部名称发送,但没有成功。

enter image description here

1 个答案:

答案 0 :(得分:0)

没有错误消息,目前尚不清楚发生了什么。也就是说,创建新文件夹的语法应如下所示:

var folder = new DriveItem
{
    Name = plan.Title,
    Folder = new Folder { },
    @microsoft.graph.conflictBehavior = "rename"
};