最近有个需求,写个定时迁移文件夹的小程序,因为计时器任务比较繁琐,所以选择了控制台程序。然后,用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();

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

SharePoint 服务器端对象迁移文件夹的更多相关文章

  1. BEGINNING SHAREPOINT® 2013 DEVELOPMENT 文件夹

    BEGINNING SHAREPOINT® 2013 DEVELOPMENT 文件夹 第一部分--開始使用SharePoint 2013 第1章节--SharePoint 2013 介绍 逐渐了解Sh ...

  2. SharePoint文档库文件夹特殊字符转义

    当我们在SharePoint网站文档库中新建文件夹时包含了~ " # % & * : < > ? / \ { | }字符时(一共15个), 或者以.开头或者结束,或者包含 ...

  3. Python批量复制迁移文件夹

    前言 Python可以利用shutil库进行对文件夹,文件的迁移.而在本次的实践当中,难点在于目标文件夹的名称和数据源文件夹的名称,需要利用 工作单位提供的中间数据去进行对比连接起来. 例如:目标源的 ...

  4. sharepoint REST API 获取文件夹及文件

    使用REST操作文件夹: 获取文件夹 url: http://site url/_api/web/GetFolderByServerRelativeUrl('/Shared Documents')/f ...

  5. 设置SharePoint部门站点各个文件夹的权限

    最近跟客户设置了下部门站点文件夹的权限,现整理一下实现步骤: 1. Site actions –> site permissions: 停止继承,并把部门所有员工都授予Read权限: 2. 在S ...

  6. Windows下Java File对象创建文件夹时的一个"坑"

    import java.io.File; import java.io.IOException; public class DirCreate { public static void main(St ...

  7. 从Windows10中彻底删除【3D对象】文件夹

    Remove "3D object" folder from My Computer Windows Registry Editor Version 5.00 [-HKEY_LOC ...

  8. SharePoint服务器端对象模型 之 访问文件和文件夹(Part 3)

    (三)遍历 文件系统的遍历是指按照文件夹的层级结构遍历文档库.列表的文件夹和列表条目.遍历主要有三种方式:(1)直接使用文件系统对象模型进行遍历:(2)使用SPDocumentLibrary进行遍历: ...

  9. Sharepoint中有关文件夹的操作

    1.GetItemsWithUniquePermissions根据返回数量和是否返回文件夹获取唯一权限的列表项集合 对于SharePoint对象模型中SPList的GetItemsWithUnique ...

随机推荐

  1. FunDA:一个开源的函数式数据处理工具库,也是Slick的补充

    如果你是一个Slick用户,或者你是一个数据库编程人员正在尝试进入函数式编程模式,那么FunDA可能会帮到你. 目前市面上FRM(Functional Relational Mapper),即函数式的 ...

  2. Web性能优化工具WebPageTest(一)——总览与配置

    网站性能优化工具大致分为两类:综合类和RUM类(实时监控用户类),WebPageTest属于综合类. WebPageTest通过布置一些特定的场景进行测试,例如不同的网速.浏览器.位置等. 测试完成后 ...

  3. 利刃 MVVMLight 6:命令基础

    在MVVM Light框架中,事件是WPF应用程序中UI与后台代码进行交互的最主要方式,与传统方式不同,mvvm中主要通过绑定到命令来进行事件的处理, 因此要了解mvvm中处理事件的方式,就必须先熟悉 ...

  4. Load 数据1

    Druid 的load 数据分为两类 :批量load(历史数据) 和实时load(新数据) ,本文介绍批量load 数据 indexing 服务 批量load 数据需要用到indexing 服务,它是 ...

  5. DHTMLX 修改方法加参数

    dhtmlx下拉框选项过长,导致显示不全,所以在下拉框里加了title 具体方法如下: dhtmlXCombo.prototype.modes.checkbox.render=function(c, ...

  6. 接口调用 GET方式

    /** * 第一步 视图展示 . 视图页面(忽略) * @return [type] [description] */ /** * 第二步 控制器先将要运行的接口处理好(接口及参数)传到到Model层 ...

  7. [.NET产品源码保护].NET防止反编译(非混淆加密)

    .NET产品源码保护产生的背景: .NET源码加密方案支持C#及VB.NET等语言开发的ASP.NET及WINFORM应用.利用.NET支持托管代码与非托管代码共存的特性,将C#代码经过处理放于非托管 ...

  8. 五子棋AI大战OC实现

    Gobang 五子棋AI大战,该项目主要用到MVC框架,用算法搭建AI实现进攻或防守 一.项目介绍 1.地址: github地址:Gobang 2.效果图: 二.思路介绍 大概说下思路,具体看代码实现 ...

  9. jquery使用CSS3实现文字动画效果插件Textillate.js

    Textillate是一款基于jquery的使用CSS3实现文字动画的小巧插件.Textillate.js集成了一些很棒的使用CSS3动画效果的 JavaScript 库,您可非常轻轻松地把这些动画效 ...

  10. 某马-某淘商城的day01--->分析,工程搭建,tomcat插件启动工程,svn,反思

    -1:为什么还要写某马的某淘商城呢? 答:万物更新,季节交替.新人总把旧人换.所以呢,前人写了N多遍的东西,我们依旧在学,所以下决心写某马的某淘商城.(也因为在学校还没找工作,所以找个相对长期的事情做 ...