在SharePoint 2010中复制或移动文档库

时间:2012-07-19 20:25:40

标签: c# .net sharepoint sharepoint-2010

我看到很多关于将文件从一个文档库复制到另一个文档库的线程,但我想将一个完整的文档库从一个站点移动或复制到另一个站点(在同一个站点集合中)。

.NET C#代码是否可以实现?

6 个答案:

答案 0 :(得分:2)

不,这是不可能的 - 这是来自第三方供应商的专业备份解决方案的用武之地。

如果你在谈论一个简单的文档库,那当然不是那么难:

  • 您首先在目的地创建一个新的文档库,并应用您当前库中的所有设置
  • 其次,您只需要遍历库中的所有文档并使用SPFolder.Add命令

    SPFileCollection collFile = collFolder.Files; foreach(SPFile file in collFile) destFolder.Files.Add(file.Name, file.OpenBinary());

在这种情况下,collFolder是原始文档库。 destFolder是新的文档库。您可以使用SPWeb.GetFolder(string doclibname)将文档库作为文件夹。

答案 1 :(得分:2)

我们在公司中使用ControlPoint来执行这些项目和列表/ doclib副本。我甚至不用再用Powershell或STSADM弄脏我的手了(除了我喜欢弄脏的东西)。非常棒的工具和一个伟大的技术支持团队。

答案 2 :(得分:1)

您可以通过将列表保存为模板并选择“包含内容”标记并从目标网站中的模板重新创建新列表来实现。

  1. 转到列表设置,然后选择“将列表另存为模板”
  2. 填写字段并选中“包含内容”复选框。
  3. 转到目标网站。
  4. 转到网站操作 - >更多的选择。选择之前保存的模板。
  5. 你已经完成了。
  6. 请注意,如果您对仅与源站点相关的列表进行了任何自定义(例如,在项目上启动了工作流程),则无法以这种方式复制列表。

    要以编程方式执行此操作,只需使用SPListist.SaveAsTemplate()方法。

答案 3 :(得分:0)

我想你可以尝试只打开源和目标SPWeb对象,并逐个复制它们之间的项目。您可能想阅读这篇文章: http://blog.mediawhole.com/2007/12/copying-sharepoint-document-library.html

作者演示了如何将文档库从一个站点复制到另一个驻留在同一Web应用程序中的站点。

答案 4 :(得分:0)

如果您有权访问Central Admin,则可以对某些文档库执行粒度备份。您可以在任何所需的网站下恢复它。此解决方案应该比逐个复制(和删除)项目更快。有关备份和还原的信息,请参阅http://blogs.msdn.com/b/russmax/archive/2009/10/21/sharepoint-2010-granular-backup-restore-part-1.aspx

答案 5 :(得分:0)

在资源管理器视图中打开两个库并复制这些项目。但这不是代码解决方案,也不会复制元数据。