自定义事件接收器 - 复制到文件夹

时间:2011-04-12 11:40:38

标签: events sharepoint-2010 event-handling

我正在编写自定义事件接收器。基本流程如下:

  1. 文档已添加到库

  2. 根据文档的元数据,检查是否存在其他文档库中的文件夹。

  3. 如果该文件夹不存在,则会创建该文件夹。

  4. 新添加的文档将复制到另一个文档库中的文件夹中。

  5. 我已经达到了这一点,我可以将新添加的文件从一个文档库复制到另一个文档库中。但是我无法弄清楚如何在文档库中复制到特定目录(按名称)。任何帮助都会得到很大的帮助。

    到目前为止,这是我的代码:

    SPFile sourceFile = properties.ListItem.File;
    SPFile destFile; // Copy file from source library to destination         
    using (Stream stream = sourceFile.OpenBinaryStream())
    {
        var destLib = (SPDocumentLibrary) properties.ListItem.Web.Lists[listName];
        destFile = destLib.RootFolder.Files.Add(sourceFile.Name, stream);
        stream.Close();
    } 
    // Update item properties         
    SPListItem destItem = destFile.Item;
    SPListItem sourceItem = sourceFile.Item;
    // Copy meta data
    destItem["Title"] = sourceItem["Title"];
    //...        
    //... destItem["FieldX"] = sourceItem["FieldX"];        
    //...         
    destItem.UpdateOverwriteVersion();
    

1 个答案:

答案 0 :(得分:0)

答案

//Ensure folder here 

var destFolder = destLib.RootFolder.SubFolders["name"]; 

destFile = destFolder.Files.Add(sourceFile.Name, stream);