#events #sharepoint-2010 #event-handling
#Мероприятия #sharepoint-2010 #обработка событий
Вопрос:
Я нахожусь в процессе написания пользовательского приемника событий. Основной процесс заключается в следующем:
-
Документ добавлен в библиотеку
-
На основе метаданных документа мы проверяем, существует ли папка в другой библиотеке документов.
-
Если папка не существует, она создается.
-
Недавно добавленный документ копируется в папку, находящуюся в другой библиотеке документов.
Я дошел до того, что могу копировать недавно добавленные файлы из одной библиотеки документов в другую по мере их добавления. Однако я не могу понять, как скопировать в определенный каталог (по имени) в библиотеке документов. Любая помощь была бы принята с благодарностью.
Вот мой код на данный момент:
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:
Ответ
//Ensure folder here
var destFolder = destLib.RootFolder.SubFolders["name"];
destFile = destFolder.Files.Add(sourceFile.Name, stream);