C# 如何通过编程将SPListItem从源列表移动到目标列表(到列表的特定文件夹)?
我是SharePoint的新手(我正在使用SharePoint 2013),我有以下问题: 我在源网站上有一个源列表(一个SPList),我必须将其项目移动到目标网站上的目标列表(另一个SPList) 因此,基本上我必须在两个不同的网站上从一个列表移动一些SPListItem 更复杂的是,目标列表包含基于迁移项上的日期字段的文件夹(例如:如果日期为:2019/05/28,则将在目标列表中创建以下文件夹,如2019-->05-->28所示,其中必须放置此SPListItem) 我知道我可以这样做:C# 如何通过编程将SPListItem从源列表移动到目标列表(到列表的特定文件夹)?,c#,sharepoint,sharepoint-2013,splistitem,splist,C#,Sharepoint,Sharepoint 2013,Splistitem,Splist,我是SharePoint的新手(我正在使用SharePoint 2013),我有以下问题: 我在源网站上有一个源列表(一个SPList),我必须将其项目移动到目标网站上的目标列表(另一个SPList) 因此,基本上我必须在两个不同的网站上从一个列表移动一些SPListItem 更复杂的是,目标列表包含基于迁移项上的日期字段的文件夹(例如:如果日期为:2019/05/28,则将在目标列表中创建以下文件夹,如2019-->05-->28所示,其中必须放置此SPListItem) 我知道我可以这样做:
private static void copyAttachments(SPListItem sourceItem, SPList sourceAttachList, SPList destAttachList, string destUrl)
{
// Create the destination item for the attachments:
SPListItem destAttachItem = null;
string recNumber = sourceItem[Arxeia6Fields.NumeroProtocollo].ToString();
DateTime recDate = (DateTime)sourceItem[Arxeia6Fields.DataProtocollo];
/*
* Add an item in a specific server-relative URL of the folder where the list item should be created.
* The new list item represents a file.
*/
destAttachItem = destAttachList.AddItem(destUrl, SPFileSystemObjectType.File);
string title = recNumber + "/" + recDate.Year.ToString();
destAttachItem["Title"] = title;
destAttachItem["Numero protocollo"] = title;
}
使用此代码,我正在创建一个新项目,将其添加到目标列表中(名为destatchlist指定destUrl,表示此列表中放置该项目的确切文件夹(我从上一个流程步骤中获得此信息)。然后,我只需使用正在迁移的源列表项的值设置目标列表中该项的2个字段的值
我的疑问是:
您不必手动执行所有这些操作,因为SharePoint已经实现了这种开箱即用的方法。您甚至不需要其他方法,您应该能够通过调用
MoveTo
方法来实现所有这些操作
sourceItem.File.MoveTo(SPUrlUtility.CombineUrl(destinationList.ParentWeb.Url,destinationList.RootFolder.Url));
其中,当然,sourceItem
si是要移动的SPListItem
,而destinationList
是应作为SPListItem的目标的SPList