如何通过邮递员使用休息电话在 SharePoint 2019 上创建带有 % 字符的文件夹?
How to create a folder with % character on SharePoint 2019 using rest calls via postman?
我想在 SharePoint 2019 上创建一个包含 % 字符的文件夹,我正在使用以下调用:
POST http://<site>/_api/web/folders
{
"__metadata": {
"type": "SP.Folder"
},
"ServerRelativeUrl": "/SP 2019/Folder%"
}
但这是创建文件夹%25 而不是文件夹%。
如果我将 JSON 中的字符更改为 #,它会创建一个包含“#”字符的文件夹。
我们传入的值是‘%’,但服务器似乎对其进行了转义。
作为解决方法,您可以创建事件接收器(已添加项目)。创建文件夹时,如果其名称中包含“%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);
}
此致,
阿摩司
This does the job.
POST http://<site>/_api/web/folders/AddUsingPath(decodedurl='Path')
它将创建一个带有 % 字符的文件夹。它是为 SP Online 引入的,但也适用于 SP 2019。
我 运行 遇到的问题是 api returns 400 Bad Request
两种情况:
a) 该文件夹已经存在。
b) URL 格式错误。
我需要区分两者
您可以查看此 Microsoft's page 以进一步参考。
我想在 SharePoint 2019 上创建一个包含 % 字符的文件夹,我正在使用以下调用:
POST http://<site>/_api/web/folders
{
"__metadata": {
"type": "SP.Folder"
},
"ServerRelativeUrl": "/SP 2019/Folder%"
}
但这是创建文件夹%25 而不是文件夹%。
如果我将 JSON 中的字符更改为 #,它会创建一个包含“#”字符的文件夹。
我们传入的值是‘%’,但服务器似乎对其进行了转义。
作为解决方法,您可以创建事件接收器(已添加项目)。创建文件夹时,如果其名称中包含“%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);
}
此致,
阿摩司
This does the job.
POST http://<site>/_api/web/folders/AddUsingPath(decodedurl='Path')
它将创建一个带有 % 字符的文件夹。它是为 SP Online 引入的,但也适用于 SP 2019。
我 运行 遇到的问题是 api returns 400 Bad Request
两种情况:
a) 该文件夹已经存在。
b) URL 格式错误。
我需要区分两者
您可以查看此 Microsoft's page 以进一步参考。