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

}

 

你可能感兴趣的:(document)