zoukankan      html  css  js  c++  java
  • SharePoint 服务器端对象迁移文件夹

      最近有个需求,写个定时迁移文件夹的小程序,因为计时器任务比较繁琐,所以选择了控制台程序。然后,用windows的计划任务执行,也许,会有广大朋友需要类似的功能,简单的分享一下代码逻辑,功能非常简单,希望大家不要见笑。
      //提升权限代码

    SPSecurity.RunWithElevatedPrivileges(delegate()
    {
      //提升权限的核心代码
    });

      //创建网站集和网站对象

    using (SPSite site = new SPSite(siteUrl))
    {
      using (SPWeb web = site.OpenWeb(webUrl))
      {
      }
    }

      //允许非安全更新,否则客户端调用可能回报不安全更新操作的错误

    web.AllowUnsafeUpdates = true;
    web.AllowUnsafeUpdates = false;

      //获取文档库和文件夹 

    SPList sDoclib = web.Lists[sourceDoclib];
    SPList tDoclib = web.Lists[transferDoclib];
    SPListItemCollection items = sDoclib.Folders;

      //遍历文件夹,并迁移到目标文档库 

    foreach (SPListItem item in items)
    {
      SPFileCollection files = item.Folder.Files;
      item.Folder.MoveTo(web.Url + "/" + tDoclib.RootFolder.Url.ToString() + "/" + item.Folder.Name);
    }

      特别要说的是MoveTo的方法,如果要保留源文档库的内容,只是复制也可以用CopyTo。这两个方法既可以对SPFolder使用,也可以对SPFile使用,参数是目标的地址。记住,参数一定是地址,比如源文件是http://url/sourceLib/file.txt,目标文件就需要是http://url/transferLib/file.txt。如果是文件夹,目标地址就可以是http://url/transferFolder就可以了。

      整个功能很简单,其间注意事项有:

    • Net Framework的版本要和SharePoint版本相对应
    • 控制台程序要以64位程序为目标平台
    • 提升权限进行操作,以防止操作没有权限
    • 允许不安全更新,更新完毕记得关闭这个设置
    • MoveTo和CopyTo方法的使用

      当然,除此之外,必要的异常处理和日志记录也是必须的,大家按照需求添加相关功能就可以了。我这里就简单的把日志记录在记事本中,方便查看了。

    using System.IO;

      //写入日志代码,日志路径和生成的.exe文件在同一位置

    StreamWriter sw = new StreamWriter("log.txt");
    sw.WriteLine("日志内容");
    sw.Flush();
    sw.Close();

      以上便是整个功能的详细介绍,希望能够为有需要的人带来一定的帮助。当然,如果高手飘过欢迎指点,不喜勿喷,多谢!

  • 相关阅读:
    正则表达式基础学习
    二识angularJS
    元素的居中方式总结
    初识AngularJs
    初识Vue.js
    Flight学习(一)
    Servlet/JSP-07 Session应用
    Servlet/JSP-05 Cookie
    Servlet/JSP-06 Session
    Servlet/JSP-04 JSP基础
  • 原文地址:https://www.cnblogs.com/jianyus/p/6896597.html
Copyright © 2011-2022 走看看