1

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

2 Answers 2

1

this doesnt work when you have multiple language packs installed...

This Will help you :

http://blogs.msdn.com/b/sowmyancs/archive/2008/10/02/programmatically-rename-a-file-inside-a-sharepoint-document-library.aspx

1

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?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.