Problem renaming a file in document library programmatically
-
06-12-2019 - |
Question
I want to use a FeatureEventReceiver to rename Home.aspx -> Old_Home.aspx. When i activate the feature rather than Home.aspx getting renamed it gets deleted/disappears (i.e. missing when i refresh sharepoint designer) from the library. Here is the FeatureActivated....what be i doing wrong?
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
SPWeb curWeb = (SPWeb)properties.Feature.Parent;
SPSite curSite = curWeb.Site;
SPWeb rootWeb = curSite.RootWeb;
/* Rename Home.aspx to Old_Home.aspx */
SPList list = rootWeb.Lists["Site Pages"];
if (list != null)
{
foreach (SPListItem item in list.Items)
{
if (item["Name"].Equals("Home.aspx"))
{
item.File.CheckOut();
item["Name"] = "Old_Home.aspx";
item.Update();
item.File.CheckIn("file name has been changed");
break;
}
}
}
}
TIA
Solution
this doesnt work when you have multiple language packs installed...
This Will help you :
OTHER TIPS
Could you be missing
item.File.Publish();
Also, as you debug, is there any exception thrown? Any entry on the ULS or on the Event Viewer that could give you some clue of what's happening?
Licensed under: CC-BY-SA with attribution
Not affiliated with sharepoint.stackexchange