C# 使用c将文档库项从一个文件夹移动到另一个文件夹,包括版本历史记录#

C# 使用c将文档库项从一个文件夹移动到另一个文件夹,包括版本历史记录#,c#,sharepoint,document,C#,Sharepoint,Document,使用Sharepoint 2007对象模型,我一直在寻找C#中的一个示例,将一个项目从一个文档库移动到同一服务器上的另一个文档库,并保存版本历史记录(即SPListItemVersion对象)和元数据(文件夹具有相同的内容类型等) 我能够用以下代码完成我想要做的事情: /// <summary> /// Adds item to archive /// </summary> /// <param name="item"&g

使用Sharepoint 2007对象模型,我一直在寻找C#中的一个示例,将一个项目从一个文档库移动到同一服务器上的另一个文档库,并保存版本历史记录(即SPListItemVersion对象)和元数据(文件夹具有相同的内容类型等)

我能够用以下代码完成我想要做的事情:

    /// <summary>  
    /// Adds item to archive  
    /// </summary>  
    /// <param name="item">Item to add</param>  
    /// <param name="destination">Archive path</param>  
    /// <param name="destination">web site of archive</param>  
    /// <returns>Result of arhivation process</returns>  
    public static string ArchiveItem(SPListItem item, string destination, SPWeb web)
    {
        // Save main meta information for later use:  
        var author = item.File.Author;
        var modifiedBy = item.File.ModifiedBy;
        var modified = item.File.TimeLastModified;

        var created = item.File.TimeCreated;
        // Get destination filename:  
        var destinationFile = destination + "/" + item.File.Name;
        // Copy the item and set properties:  
        var coppiedFile = web.GetFolder(destination).Files.Add(
            destinationFile,
            item.File.OpenBinary(),
            author,
            modifiedBy,
            created,
            modified
        );
        coppiedFile.Item["Created"] = created;
        coppiedFile.Item["Modified"] = modified;
        // Save changes, UpdateOverwriteVersion causes object to save without saving a new version.
        coppiedFile.Item.UpdateOverwriteVersion();
        // If moving is enabled, delete original item:  
        item.Delete();

        return coppiedFile.ServerRelativeUrl;
    }
//
///将项目添加到存档
///   
///要添加的项目
///存档路径
///档案馆网站
///arhivation过程的结果
公共静态字符串ArchiveItem(SPListItem、字符串目标、SPWeb)
{
//保存主要元信息供以后使用:
var author=item.File.author;
var modifiedBy=item.File.modifiedBy;
var modified=item.File.TimeLastModified;
var created=item.File.TimeCreated;
//获取目标文件名:
var destinationFile=destination+“/”+item.File.Name;
//复制项目并设置属性:
var coppiedFile=web.GetFolder(destination).Files.Add(
命中注定,
item.File.OpenBinary(),
作者
由,
创建,
被改进的
);
coppiedFile.Item[“已创建”]=已创建;
coppiedFile.Item[“Modified”]=已修改;
//保存更改,UpdateOverwriteVersion会导致对象保存而不保存新版本。
coppiedFile.Item.UpdateOverwriteVersion();
//如果启用移动,则删除原始项目:
项目.删除();
返回coppiedFile.ServerRelativeUrl;
}