2010-04-06 15 views
0

J'ai modifié le code. Je peux maintenant télécharger dans la bibliothèque de documents actuelle (pas plus de hardcoding la bibliothèque de documents ou l'URL acutal). Tout ce que je dois faire maintenant est de m'assurer que le dossier existe ou pas. créer un dossier s'il n'existe pas dans la bibliothèque de documents actuelle. Je vais continuer à mettre à jour le code si je suis tombé sur la solution.Comment créer un dossier dans la bibliothèque de documents actuelle s'il n'est pas déjà présent?

Merci

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

    } 
} 

Répondre

5

En supposant que « doclibList » est la bibliothèque de documents que vous souhaitez créer le dossier, vous pouvez simplement parcourir les dossiers là-bas et vérifiez si vous trouvez le nom nécessaire. Mettez ce qui suit après votre vérification pour le si la doclibList n'est pas nulle.

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