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

  • 相关阅读:
    POJ1182
    poj3225 线段树区间操作 (见鬼)
    斜率优化dp(POJ1180 Uva1451)
    POJ2528 线段树的区间操作
    POI2001 Gold mine(二叉排序树 黑书经典)
    POJ3921
    博弈论之威佐夫博弈(转载)
    poj3468(线段树 边覆盖)
    hdu 1166(树状数组 或 线段树)
    压缩软件的改进--- (续先前霍夫曼编码)
  • 原文地址:https://www.cnblogs.com/davidshi/p/3349192.html
Copyright © 2020-2023  润新知