SharePoint的API

之前培训写过一个作业,关于SharePoint的API的,之后做restore和backup也经常用到,在这里给总结下如何创建。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;
using System.Xml;
using System.IO;

namespace SP1
{
class Program
{
static void Main(string[] args)
{
string url = @"http://win-gao9n2dooq5:7000/mysite/mysubsite/default.aspx";
XmlDocument doc = new XmlDocument();
XmlElement rootNode = doc.CreateElement("Folder");
ToSite(url, rootNode, doc);
doc.LoadXml(rootNode.OuterXml);
doc.Save(@"C:shi.xml");
}
//获取WebApp下的Site
public static void ToSite(string url, XmlElement myNode, XmlDocument myDocument)
{
//string url=@"http://win-gao9n2dooq5:7000/mysite/mysubsite/default.aspx";
SPWebApplication webApp = SPWebApplication.Lookup(new Uri(url));
foreach (SPSite site in webApp.Sites)
{
using (site)
{
XmlElement childElement = myDocument.CreateElement("Site");
childElement.SetAttribute("Url", site.Url.ToString());
childElement.SetAttribute("AllWebs", site.AllWebs.ToString());
childElement.SetAttribute("ID", site.ID.ToString());
myNode.AppendChild(childElement);
if (site != null)
{
ToWeb(site, childElement, myDocument);
}
}
}
}
//获取Site下的Web
private static void ToWeb(SPSite site, XmlElement childElement, XmlDocument myDocument)
{

using (site)
{
SPWeb rootweb = site.RootWeb;
foreach (SPWeb web in rootweb.Webs)
{
using (web)
{
Console.WriteLine(web.Name.ToString());
XmlElement childElement1 = myDocument.CreateElement("Web");
childElement1.SetAttribute("Language", web.Language.ToString());
childElement1.SetAttribute("Title", web.Title.ToString());
//childElement1.SetAttribute("ParentWeb", web.ParentWeb.ToString());
childElement.AppendChild(childElement1);
//web.Update(); //更新Web属性
if (web.Webs.Count != 0)
{
ToWeb(site, childElement, myDocument);
}
ToList(web, childElement, myDocument);
}
}
}
}
//获取Web下的List,folder,web等
private static void ToList(SPWeb web, XmlElement childElement, XmlDocument myDocument)
{
//using (site)
//{
foreach (SPList list in web.Lists)
{
if (list.Hidden ==true)
{
Console.WriteLine(list.Title.ToString());
XmlElement childElement2 = myDocument.CreateElement("List");
childElement2.SetAttribute("Title", list.Title.ToString());
childElement.AppendChild(childElement2);
ToFolder(list,childElement2,myDocument);
}
if (list != null)
{
ToList( web, childElement, myDocument);
}
}
//}
}

public static void ToFolder(SPList list ,XmlElement childElement ,XmlDocument myDocument)
{
SPFolder rootFolder = list.RootFolder;
foreach (SPFolder folder in rootFolder.SubFolders)
{
Console.WriteLine(folder.ServerRelativeUrl);
}
}
}
}

原文地址:https://www.cnblogs.com/davidshi/p/3349192.html