Как загрузить документ с метаданными в документ SharePoint.библиотека с использованием клиентской объектной модели? - PullRequest
3 голосов
/ 30 сентября 2011

Я занимаюсь разработкой надстройки VSTO Outlook, поэтому использую объектную модель клиента SharePoint. Могу ли я загрузить документ в документ SharePoint. библиотека и добавить метаданные одним действием? Используя Google, я нашел много примеров, где метаданные добавляются после загрузки. Также я узнал, что можно добавлять метаданные, используя полный API (метод File.Add () и хеш-таблицу).

Помощь

1 Ответ

3 голосов
/ 03 октября 2011

Вы можете использовать код, подобный следующему:

ClientContext context = new ClientContext("SITEURL");
Site site = context.Site;
Web web = context.Web;
context.Load(site);
context.Load(web);
context.ExecuteQuery();

List list = listCollection.GetByTitle("Reports");
context.Load(list);
context.ExecuteQuery();

context.Load(list.RootFolder);
context.Load(list.RootFolder.Folders);
context.ExecuteQuery();

foreach (Folder folder in list.RootFolder.Folders)
{
    if (folder.Name == "Folder-To-Upload")
    {
        FileCreationInformation fci = new FileCreationInformation();

        byte[] array = System.IO.File.ReadAllBytes("SlmReportPeriods.xml"); // File which you want to upload

        fci.Content = array;
        fci.Overwrite = true;
        fci.Url = "Sample";
        File file = folder.Files.Add(fci);


        ListItem item = file.ListItemAllFields;
        item["Field1"] = "Example1";
        item["Field2"] = "ETC.";
        item.Update();

        folder.Files.Add(fci);
        context.ExecuteQuery();
    }
}

Суть этого примера заключается в использовании объектов FileCreationInformation и File и получении ListItemAllFields элемента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...