【发布时间】:2018-05-23 00:50:14
【问题描述】:
我想将文档库中的文档及其所有附加元数据从一个库复制到另一个网站集中的另一个库。
我想在 C# 中的远程事件接收器中执行此操作。
我的问题主要是:我该如何开始?如果它在同一个网站集中,我可以将文档复制到同一个上下文中的新库,但我想我现在需要在不同的上下文中工作?
这是我现在的代码:
//Get current Item
List curList = clientContext.Web.Lists.GetById(properties.ItemEventProperties.ListId);
ListItem curItem = curList.GetItemById(properties.ItemEventProperties.ListItemId);
clientContext.Load(curItem);
clientContext.ExecuteQuery();
string sNewSite = "url.toOtherSitecollection.com";
//Can we attempt contextception?
using (ClientContext siteCollContext = new ClientContext(sNewSite))
{
List destinationList = siteCollContext.Web.Lists.GetByTitle("DocumentLibrary_0001");
Folder destinationFolder = siteCollContext.Web.GetFolderByServerRelativeUrl("DocumentLibrary_0001");
FileCreationInformation newFileCreation = new FileCreationInformation { Content = Convert.FromBase64String(curItem.ToString()), Overwrite = true };
File newFile = destinationFolder.Files.Add(newFileCreation);
ListItem newItem = newFile.ListItemAllFields;
//Copy all the metadata as well.
try
{
newItem["..."] = curItem["..."];
//And all other metadata fields...
}
catch
{
//Log this.
}
newItem.Update();
siteCollContext.ExecuteQuery();
}
【问题讨论】:
-
您必须为其他站点创建单独的上下文并上传文件
标签: c# sharepoint csom