zoukankan      html  css  js  c++  java
  • DocumentSet 操作代码(二)

    public static DocumentSet GetDocumentSetById(this SPList list, int ID)
    {
         return DocumentSet.GetDocumentSet(list.GetItemById(ID).Folder);
    }
    public static bool IsDocumentSet(this SPListItem item)
    {
      bool documentSetItem = false;
      DocumentSet documentSet = null;
     
      if (null != item && item.IsFolder())
     {
      documentSet = DocumentSet.GetDocumentSet(item.Folder);
     
      if (null != documentSet)
        documentSetItem = true;
     }
     return documentSetItem;
    }
    
    public static bool IsDocumentSetItem(this SPListItem item)
    {
     bool documentSetItem = false;
     DocumentSet documentSet = null;
     
     if (null != item && null != item.File)
     {
       documentSet = DocumentSet.GetDocumentSet(item.File.ParentFolder);
     
       if (null != documentSet)
        documentSetItem = true;
     }
     return documentSetItem;
    }
    public static SPFile MoveFile(SPWeb web, string sourceUrl, DocumentSet docSet)
    {
     SPFile file = web.GetFile(sourceUrl);
     string destinationFolderUrl = docSet.Folder.Url;
     
     destinationFolderUrl = (!destinationFolderUrl.EndsWith("/")) ? destinationFolderUrl + "/" : destinationFolderUrl;
     file.MoveTo(destinationFolderUrl + file.Name, true);
     web.Update();
     
     return web.GetFile(web.Url + "/" + destinationFolderUrl + file.Name);
    }
    public static SPFile CopyFile(SPWeb web, string sourceUrl, DocumentSet docSet)
    {
     SPFile file = web.GetFile(sourceUrl);
     string destinationFolderUrl = docSet.Folder.Url;
     
     destinationFolderUrl = (!destinationFolderUrl.EndsWith("/")) ? destinationFolderUrl + "/" : destinationFolderUrl;
     file.CopyTo(destinationFolderUrl + file.Name, true);
     web.Update();
     
     return web.GetFile(web.Url + "/" + destinationFolderUrl + file.Name);
    }
    
    public static SPFile CreateDocumentLink(this SPList list, string documentName, string documentUrl, DocumentSet docSet)
    {
     SPFile file = null;
     SPListItem item = null;
     if (list is SPDocumentLibrary)
     {
      SPDocumentLibrary docLib = (SPDocumentLibrary)list;
      if (docLib.ContentTypesEnabled)
      {
       SPContentType myCType = list.ContentTypes["Link to a Document"];
       if (myCType != null)
       {
     
        //replace string template with values
        string redirectAspx = RedirectAspxPage();
        redirectAspx.Replace("{0}", documentUrl);
     
        //should change the name of the .aspx file per item
        file = docSet.Folder.Files.Add(documentName + ".aspx", UTF8Encoding.UTF8.GetBytes(redirectAspx));
     
        //set list item properties
        item = file.Item;
     
     
        item["ContentTypeId"] = myCType.Id;
        item.Update();
     
        if (item["ContentType"].ToString() == "Link to a Document")
        {
         SPFieldUrlValue fieldUrl = new SPFieldUrlValue() { Description = documentName, Url = documentUrl };
     
         item["URL"] = fieldUrl;
         item.Update();
        }
       }
      }
     }
     
     return file;
    }
     
    public static string RedirectAspxPage()
    {
     StringBuilder builder = new StringBuilder();
     builder.Append("<%@ Assembly Name='Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c' %>");
     builder.Append("<%@ Register TagPrefix='SharePoint' Namespace='Microsoft.SharePoint.WebControls' Assembly='Microsoft.SharePoint' %>");
     builder.Append("<%@ Import Namespace='System.IO' %>");
     builder.Append("<%@ Import Namespace='Microsoft.SharePoint' %>");
     builder.Append("<%@ Import Namespace='Microsoft.SharePoint.Utilities' %>");
     builder.Append("<%@ Import Namespace='Microsoft.SharePoint.WebControls' %>");
     builder.Append("<html xmlns:mso=\"urn:schemas-microsoft-com:office:office\" xmlns:msdt=\"uuid:C2F41010-65B3-11d1-A29F-00AA00C14882\">");
     builder.Append("<head>");
     builder.Append("<meta name=\"WebPartPageExpansion\" content=\"full\" /> <meta name='progid' content='SharePoint.Link' /> ");
     builder.Append("<!--[if gte mso 9]><SharePoint:CTFieldRefs runat=server Prefix=\"mso:\" FieldList=\"FileLeafRef,URL\"><xml>");
     builder.Append("<mso:CustomDocumentProperties>");
     builder.Append("<mso:ContentTypeId msdt:dt=\"string\">0x01010A00DC3917D9FAD55147B56FF78B40FF3ABB</mso:ContentTypeId>");
     builder.Append("<mso:IconOverlay msdt:dt=\"string\">|docx|linkoverlay.gif</mso:IconOverlay>");
     builder.Append("<mso:URL msdt:dt=\"string\">{0}, {0}</mso:URL>");
     builder.Append("</mso:CustomDocumentProperties>");
     builder.Append("</xml></SharePoint:CTFieldRefs><![endif]-->");
     builder.Append("</head>");
     builder.Append("<body>");
     builder.Append("<form id='Form1' runat='server'>");
     builder.Append("<SharePoint:UrlRedirector id='Redirector1' runat='server' />");
     builder.Append("</form>");
     builder.Append("</body>");
     builder.Append("</html>");
     return builder.ToString();
    }
    
  • 相关阅读:
    Eos开发——构造查询条件
    随记
    Spring的三种通过XML实现DataSource注入方式
    事务处理
    Spring AOP实例——异常处理和记录程序执行时间
    输出日志实例改成用Spring的AOP来实现
    用ProxyFactoryBean创建AOP代理
    Spring的通知(Advice)
    Spring的3种切入点PointCut实现
    学习AOP之JAVA的代理机制
  • 原文地址:https://www.cnblogs.com/wengnet/p/2989187.html
Copyright © 2011-2022 走看看