【问题标题】:Cannot create a folder in a list [closed]无法在列表中创建文件夹 [关闭]
【发布时间】:2019-07-24 14:40:36
【问题描述】:

我正在尝试在列表中创建一个文件夹,以下不起作用:

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" }
}

现在文件夹已创建,但调用需要 Title,但不接受 Name,这导致创建的文件夹没有 Name(标题)。编辑:它确实接受带有小写 N 的“名称”,但名称仍然没有显示在列表中。尝试将其作为“BaseName”、“FileLeafRef”和其他一些文件夹内部名称发送,但没有成功。

【问题讨论】:

  • “不起作用”不是很具体。请在您的问题中包含完整的请求和响应。
  • 这是一个文档库吗?
  • 这只是一个列表
  • 你能把这个问题搁置一边吗?

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


【解决方案1】:

如果没有错误消息,则不清楚这里到底发生了什么。也就是说,创建新文件夹的语法应该是这样的:

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

【讨论】:

  • 谢谢 Marc,明天试试。是的,对不起,我当前的项目没有回复错误报价,也会尝试实施。
  • 添加了错误引用
猜你喜欢
  • 1970-01-01
  • 2012-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-12
  • 2021-12-29
  • 1970-01-01
  • 2017-12-10
相关资源
最近更新 更多