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

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

时间: 2024-09-19 21:19:13

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

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

import java.io.File; import java.io.IOException; public class DirCreate { public static void main(String[] args) throws IOException { // TODO Auto-generated method stub String dirStr="D:"; File dir=new File(dirStr); System.out.println("====

FSO组件之文件夹操作

操作完驱动器,接着就是来操作文件夹了.其中包括:提取文件夹信息.创建文件夹.删除文件夹.复制文件夹.移动文件夹等.下面就具体来看. 一.fso.GetFolder 一看就明白,是提取文件夹了.那具体是提取哪个文件夹呢?后面肯定要跟一个文件夹的路径.提取出来了再来显示该文件夹相关信息呢?是不是有要具体提取下去.所以,看程序: 1,getfldr.asp <%Set fso = CreateObject("Scripting.FileSystemObject")Set fldr =

ASP入门教程-文件夹操作

文件夹操作主要包括创建.复制.移动和删除文件夹,检查文件夹是否存在以及指定路径中某文件夹中相应的文件对象.完成这些操作可以使用 FileSystemObjec对象或 Folder 对象的方法. 一.使用 FileSystemObject 对象的相应方法进行文件夹进行操作 1.使用 FileSystemObject 对象创建文件夹时,先要创建 FileSystemObject 对象,再使用它的 CreateFolder 方法创建文件夹对象,其语法格式如下: fso.CreateFolder(fol

Windows 2003 Active Diretory全攻略(六)--文件夹权限与共享(1)

什么是权限?权限是指用户对于对象的访问限制.例如:能否新建.读取或删除对象. 文件夹与文件的权限根据是否被共享到网络上,其权限分为以下两种:1.NTFS权限:只要是存在NTFS磁盘驱动器上的文件夹或文件,无论是否被共享出来,都具有此权限.2.共享权限:只要是共享出来的文件夹,就一定具有此权限.若文件该文件夹也存在NTFS磁盘驱动器上,便同时具有NTFS权限与共享权限.注意了:若文件同时拥有访问权限和共享权限,则取其中"较为严格的权限"为准. 管理NTFS权限:先看NTFS权限的几个运行

用vbs实现按创建日期的顺序列出一个文件夹中的所有文件_vbs

问: 你好,脚本专家!如何按创建日期的顺序列出一个文件夹中的所有文件? -- CL 答: 你好,CL.您知道,如果我们雄心勃勃并且努力工作,我们会坐下来为您写一个脚本,以使用 WMI 返回一个文件夹中的所有文件.该脚本将获取有关所有这些文件的信息,并将该数据存储在未连接的记录集中.然后,在该记录集中设置排序顺序以按创建日期和时间对文件进行排列.(接着,我们进行大量的重复性工作,以将 WMI 的日期时间值转换为易读的日期时间格式.)最后,我们将记录集中的所有值回显到屏幕上.它需要花费大量时间并编写

asp.net如何绑定cvs?读取特定文件下的文件夹名和文件名

问题描述 我想在asp.net下,用vb读取csv服务器端某个特定文件夹(如Test)的下一级目录的所有文件名和文件夹名,然后生成一棵树.求各位大虾帮忙!在线苦等. 解决方案 解决方案二:该回复于2009-03-09 09:12:17被版主删除

[sharepoint]rest api文档库文件上传,下载,拷贝,剪切,删除文件,创建文件夹,修改文件夹属性,删除文件夹,获取文档列表

写在前面 最近对文档库的知识点进行了整理,也就有了这篇文章,当时查找这些接口,并用在实践中,确实废了一些功夫,也为了让更多的人走更少的弯路. 系列文章 sharepoint环境安装过程中几点需要注意的地方 Rest API的简单应用 rest api方式实现对文档库的管理 通过WebClient模拟post上传文件到服务器 WebHttpRequest在sharepoint文档库中的使用 [sharepoint]Rest api相关知识(转) [sharepoint]根据用户名获取该用户的权限

java socket传输文件夹出问题,帮忙修改?应该是服务器端有问题(读取文件那里有问题)

问题描述 服务器端mportjava.net.*;importjava.io.*;publicclassFolderServer{ServerSocketserver;Socketclient;DataInputStreamdis;FileOutputStreamfos;intlength;byte[]b=newbyte[1024];publicstaticvoidmain(String[]args){newFolderServer().ServerStart();}publicvoidServ

Sharepoint Document library 当中的文件夹移除权限无效

问题描述 SPSecurity.RunWithElevatedPrivileges(delegate(){using(SPSitesite=newSPSite(strSiteUrl)){using(SPWebweb=site.OpenWeb(strWebUrl)){site.AllowUnsafeUpdates=true;web.AllowUnsafeUpdates=true;SPFolder_folder=web.GetFolder(_folderUrl);_folder.Item.Reset