How to Create a Folder in the Current Document Library if it's not already present?
        Posted  
        
            by Rosh Malai
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by Rosh Malai
        
        
        
        Published on 2010-04-06T22:35:57Z
        Indexed on 
            2010/04/07
            4:23 UTC
        
        
        Read the original article
        Hit count: 339
        
sharepoint
|document-library
All I want to do is to create a folder "MetaFolder" inside a document library.
User can be on any document library and I would like to create this folder after item is added (so on itemAdded event handler).
I do NOT want workflow so please dont suggest workflow. This code works but I have to hardcode the url but need to get url from current url. also need to verify the folder uHippo does not exists in the current doc library...
public override void ItemAdded(SPItemEventProperties properties)
{
    base.ItemAdded(properties);
    using (SPSite currentSite = new SPSite(properties.WebUrl))
    using (SPWeb currentWeb = currentSite.OpenWeb())
    {   // This code works and creates Folder in the "My TEST Doc library" 
        //SPList docLib = currentWeb.Lists["My TEST Doc Library"];
        //SPListItem folder = docLib.Folders.Add(docLib.RootFolder.ServerRelativeUrl, SPFileSystemObjectType.Folder, "My folder");
        //folder.Update();
        string doclibname = "Not a doclib";
        //SPList doclibList = currentWeb.GetList(HttpContext.Current.Request.RawUrl);  // NOT WORKING. Tried properties.weburl
        SPList doclibList = currentWeb.GetListFromUrl("https://mycompanyportal/sites/testsitecol/testwebsite/My%20TEST%20Doc%20Library/Forms/AllItems.aspx");
        if (null != doclibList)
        {
            doclibname = doclibList.Title;
        }
        // this section also not working.
        // getting Object reference not set to an instance of an object or something like that.
        //if (currentWeb.GetFolder("uHippo").Exists == false)
        //{
            SPListItem folder = doclibList.Folders.Add(doclibList.RootFolder.ServerRelativeUrl, SPFileSystemObjectType.Folder, "uHippo");
            folder.Update();
        //}
    }
} 
© Stack Overflow or respective owner