Как создать папку в текущей библиотеке документов, если ее еще нет? - PullRequest
0 голосов
/ 07 апреля 2010

Я изменил код. Теперь я могу загрузить в текущую библиотеку документов (не более жестко кодировать библиотеку документов или точный URL). Все, что мне нужно сделать сейчас, это убедиться, что папка существует или нет. создать папку, если она не существует в текущей библиотеке документов. Я буду продолжать обновлять код, если наткнулся на решение.

Спасибо

public override void ItemAdded(SPItemEventProperties properties)
{
    base.ItemAdded(properties);


    using (SPSite currentSite = new SPSite(properties.WebUrl))
    using (SPWeb currentWeb = currentSite.OpenWeb())

    {   SPListItem oItem = properties.ListItem;             
        string doclibname = "Not a doclib";

        //Gets the name of the document library
        SPList doclibList = oItem.ParentList;

        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();
        //}

    }
} 

1 Ответ

5 голосов
/ 07 апреля 2010

Предполагая, что "doclibList" является библиотекой документов, в которой вы хотите создать папку, вы можете просто перебрать там папки и проверить, не нашли ли вы нужное имя.Поместите следующее после проверки, если doclibList не равен нулю.

bool foundFolder = false; //Assume it isn't there by default
if (doclibList.Folders.Count > 0) //If the folder list is empty, then the folder definitely doesn't exist.
{
  foreach (SPListItem fItem in doclibList.Folders) 
  {
    if (fItem.Title.Equals("uHippo"))
    {
      foundFolder = true; //Folder does exist, break loop.
      break;
    }
  }
}
if (foundFolder == false) 
{
  SPListItem folder = doclibList.Folders.Add(doclibList.RootFolder.ServerRelativeUrl, SPFileSystemObjectType.Folder, "uHippo");      
  folder.Update(); 
}
...