C# 如何通过编程将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) 我知道我可以这样做:

我是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个字段的值

我的疑问是:

  • 是否可以将项目从源列表移动到目标列表(在目标URL指定的特定文件夹中)

  • 如果迁移中的此项目包含附件,则可以通过此单个移动步骤自动迁移这些附件?(如果可能)


  • 您不必手动执行所有这些操作,因为SharePoint已经实现了这种开箱即用的方法。您甚至不需要其他方法,您应该能够通过调用
    MoveTo
    方法来实现所有这些操作

    sourceItem.File.MoveTo(SPUrlUtility.CombineUrl(destinationList.ParentWeb.Url,destinationList.RootFolder.Url));

    其中,当然,
    sourceItem
    si是要移动的
    SPListItem
    ,而
    destinationList
    是应作为SPListItem的目标的
    SPList