2010-04-02 76 views
0

如何將文件夾添加到當前文檔庫(以及如果文件夾不存在於當前文檔庫中)?將文件夾添加到當前文檔庫

(電流而在以往任何時候最終用戶) (我要加這段代碼itemAdded事件處理程序)

+0

學習正確標記問題以獲得更好/更快的答案。添加不是標籤:) – Shoban 2010-04-02 22:11:19

回答

0
curSPList.Items.Add("My Folder Name", SPFileSystemObjectType.Folder); 

在任何SharePoint列表中創建一個新的文件夾,包括文檔庫。如果您計劃在事件處理函數中實現此功能,您可以從SPItemEventProperties參數的「List」屬性中獲取對SPList的引用。

+0

太棒了。下面將給出文檔庫的當前位置?使用(SPSite currentSite = new SPSite(SPContext.Current.Site.ID)) 使用(SPWeb currentWeb = currentSite.OpenWeb(SPContext.Current.Web.ID)) – 2010-04-02 23:00:20

+0

如果您是通過事件處理程序執行此操作,您在範圍內的當前文檔庫是隱含的。您的類的重寫方法(包括ItemAdded)在參數列表中包含SPItemEventProperties命名屬性。你可以通過它的List屬性獲取一個引用,IE:properties.List。 properties.List.Items.Add(「FolderName」,SPFileSystemObjectType.Folder);是你需要的所有代碼。 – 2010-04-03 03:00:51

0

以下是最終的代碼。如果「uHippo」不存在,則在當前文檔庫中創建一個文件夾「uHippo」。

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


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



    } 
} 
相關問題