Пользовательский приемник событий - Копировать в папку - PullRequest
0 голосов
/ 12 апреля 2011

Я нахожусь в процессе написания пользовательского приемника событий.Основной процесс выглядит следующим образом:

  1. Документ добавлен в библиотеку

  2. На основе метаданных документа мы проверяем, находится ли папкасуществует другая библиотека документов.

  3. Если папка не существует, она создается.

  4. Недавно добавленный документ копируется в папку, находящуюся в другой библиотеке документов.

Я попал в точку, где я могукопировать вновь добавленные файлы из одной библиотеки документов в другую при их добавлении.Однако я не могу понять, как скопировать в определенный каталог (по имени) в библиотеке документов.Любая помощь будет принята.

Вот мой код:

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 голосов
/ 12 апреля 2011

Ответ

//Ensure folder here 

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

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