C# 如何以编程方式重命名Sharepoint目录(SPFolder或SPListItem)?
我试过这个:C# 如何以编程方式重命名Sharepoint目录(SPFolder或SPListItem)?,c#,asp.net,sharepoint,sharepoint-2003,C#,Asp.net,Sharepoint,Sharepoint 2003,我试过这个: SPFolder folder = ...; folder.Item["Name"] = newName; folder.Item.Update(); 它的行为很神秘。如果我运行它,它会抛出一个异常: SPException: Cannot complete this action. 但是,如果我在新名称分配之后和Update()之前在调试器中停止它,并查看folder.Item的属性,然后继续,它每次都会工作。这不是计时问题,我尝试在调试器中停止它,而不在本地窗口中查看它,
SPFolder folder = ...;
folder.Item["Name"] = newName;
folder.Item.Update();
它的行为很神秘。如果我运行它,它会抛出一个异常:
SPException: Cannot complete this action.
但是,如果我在新名称分配之后和Update()之前在调试器中停止它,并查看folder.Item的属性,然后继续,它每次都会工作。这不是计时问题,我尝试在调试器中停止它,而不在本地窗口中查看它,但当时它抛出了一个异常
此问题表示类似的解决方案,但使用SystemUpdate(),这有关系吗 您不需要更改名称,只需要更改标题。 因此: 更新和系统更新之间的区别在于更新将根据信息进行修改/修改,如果启用版本控制,则会增加版本号。SystemUpdate不会更新这些
还要注意,我使用了SPBuiltInFieldId.Title。这比使用“Title”要好,因为“Title”可能会导致非英语网站出现问题。您不需要更改名称,但需要更改Title。 因此: 更新和系统更新之间的区别在于更新将根据信息进行修改/修改,如果启用版本控制,则会增加版本号。SystemUpdate不会更新这些
还要注意,我使用了SPBuiltInFieldId.Title。这比使用“Title”要好,因为“Title”可能会在非英语网站中引起问题。您可以尝试使用
MoveTo
方法您可以尝试在文档库中使用MoveTo
方法项目(文件夹)的名称字段具有StaticName=FileLeafRef
。所以真正对我有效的是
SPFolder attachfolder = documentLibrary.RootFolder.SubFolders[guid];
//rename guid to new item id
attachfolder.Properties[SPBuiltInFieldId.Title.tostring()] = itemID;
attachfolder.Update();
folder.Item[SPBuiltInFieldId.FileLeafRef] = "The new name";
folder.Item.Update();
在文档库中
项(文件夹)的字段名称
具有StaticName=FileLeafRef
。所以真正对我有效的是
folder.Item[SPBuiltInFieldId.FileLeafRef] = "The new name";
folder.Item.Update();
尝试在操作“folder.ParentWeb.AllowUnsafeUpdates=true之前添加
然后将AllowUnsafeUpdates恢复到以前的值。尝试在操作“folder.ParentWeb.AllowUnsafeUpdates=true”之前添加
folder.Item["Name"] = newName;
folder.ParentWeb.AllowUnsafeUpdates = true;
folder.Item.Update();
folder.ParentWeb.AllowUnsafeUpdates = false;
然后将AllowUnsafeUpdates恢复到以前的值
folder.Item["Name"] = newName;
folder.ParentWeb.AllowUnsafeUpdates = true;
folder.Item.Update();
folder.ParentWeb.AllowUnsafeUpdates = false;
这把叉子是给我的
这个叉子是给我的对不起,我没有看到它是给SharePoint 2003的。我在2003年没有任何经验,只有2007年和2010年。它可能是这样工作的,但我不确定。对不起,我没有看到它是用于SharePoint 2003的。我在2003年没有任何经验,只有2007年和2010年。可能是这样,但我不确定。