以下部分代码是根据当前sharepoint站点登录账户取创建对应子网站下的文档库,唯一不足的就是没有事先判断文档库是否存在再去创建,若文档库存在在创建的话会抛出异常,提示文档库已存在
/// <summary>
/// 判断当前登陆用户对应的文档库是否存在不存在即创建
/// </summary>
public void creatdocs()
{
try
{
string title = SPContext.Current.Web.CurrentUser.LoginName;
string description = "";
string sitetitle = "mydocs";//文档库所在子网站
if (!String.IsNullOrEmpty(title))
{
title = title.IndexOf("\\") >= 0 ? title.Substring(title.IndexOf("\\") + 1) : title;
SPSecurity.RunWithElevatedPrivileges(delegate()
{
Guid siteID = Web.Site.RootWeb.Site.ID;
using (SPSite spSite = new SPSite(siteID))
{
using (SPWeb spWeb = spSite.AllWebs[sitetitle])
{
spWeb.AllowUnsafeUpdates = true;
SPListTemplate listTemplate = spWeb.ListTemplates["文档库"];//如果sharepoint是英文版本 Document Library
SPDocTemplate docTemplate = (from SPDocTemplate dt in spWeb.DocTemplates
where dt.Type == 122
select dt).FirstOrDefault();
Guid guid = spWeb.Lists.Add(title, description, listTemplate, docTemplate);
SPDocumentLibrary library = spWeb.Lists[guid] as SPDocumentLibrary;
library.OnQuickLaunch = true;
library.Update();
}
}
});
}
int RetCode = String.IsNullOrEmpty(title) ? 2 : 0;
string Message = String.IsNullOrEmpty(title) ? "无法获取当前登陆用户信息!" : title;
this.JResponse.RetCode = 0;
this.JResponse.Message = Message;
}
catch (Exception ex)
{
this.DebugTrace("lsycHandler.ashx creatdocs failed: {0}", ex.Message);
this.JResponse.RetCode = 2;
this.JResponse.Message = ex.Message;
}
}