0

情况:
一个 WebApplication,两个站点集合。两个网站集具有相同的“类型”和数据结构。两个集合都使用具有相同结构的文档库。

问题/问题:
我必须实现将一个文档从集合 A 复制到集合 B 的能力。当我尝试以下操作时......

SPFile destfile = destPageList.RootFolder.Files.Add(sourcePage.File.ServerRelativeUrl, sourcePage.File.OpenBinary());

...我收到一个异常,认为此 Web 中不存在具有给定 URL 的文件。URL是正确的,所以我想知道为什么会这样?您有任何提示或其他方法来解决此问题吗?

其他信息:
我正在使用 VisualStudio 2010、.NET 3.5、Sharepoint2010 Server。

编辑:
我需要以编程方式实现这一点!内容部署(由于某些原因)没有可用的解决方案。

4

1 回答 1

2

您不能在一个 Web 中使用 Files 集合将文件添加到另一个 Web 应用程序。相反,您应该打开源文件,然后打开目标站点和 Web,并使用其 Files 集合在目标 Web 中创建新文件。就像是:

byte[] sourceFileContent = sourcePage.File.OpenBinary();
using(SPSite site = new SPSite("http://mysite2"))
{
    using(SPWeb web = site.OpenWeb("/"))
    {
        SPList list = web.Lists["My List"];
        list.RootFolder.Files.Add(destFileUrl, sourceFileContent);
    }
}

顺便说一句,要在站点之间复制文件,最好使用导出/导入,如下所述: http ://www.spsamples.com/2011/07/moving-sharepoint-list-items-to-archive.html

于 2012-02-12T11:46:17.397 回答