0

我想在 SharePoint 2019 上创建一个带有 % 字符的文件夹,我正在使用以下调用:

POST http://<site>/_api/web/folders

{
  "__metadata": {
    "type": "SP.Folder"
  },
  "ServerRelativeUrl": "/SP 2019/Folder%"
}

但这是创建一个 Folder%25 而不是 Folder%。

如果我将 JSON 中的字符更改为 #,它会创建一个带有“#”字符的文件夹。

4

2 回答 2

1

这可以完成工作。

POST http://<site>/_api/web/folders/AddUsingPath(decodedurl='Path')

它将创建一个带有 % 字符的文件夹。它是为 SP Online 引入的,但也适用于 SP 2019。

我遇到的问题是api400 Bad Request在两种情况下返回:a)文件夹已经存在。b) URL 格式错误。

我需要区分这两者。

您可以查看此Microsoft 的页面以进一步参考。

于 2020-04-14T10:32:20.637 回答
0

我们传入的值是'%',但似乎服务器逃脱了它。 在此处输入图像描述

作为一种解决方法,您可以创建一个事件接收器(添加项目)。创建文件夹时,如果其名称包含“%25”,请重命名。示例代码:

public override void ItemAdded(SPItemEventProperties properties)
    {

        SPFolder folder = properties.ListItem.Folder;
        string name= folder.Name;
        if (name.Contains("%25")) {
            string newName=name.Replace("%25", "%");
            folder.Item["Name"] = newName;
            folder.ParentWeb.AllowUnsafeUpdates = true;
            folder.Item.Update();
            folder.ParentWeb.AllowUnsafeUpdates = false;
        }
        base.ItemAdded(properties);
    }

此致,

阿莫斯

于 2020-04-08T06:28:50.330 回答