Рубрики
sharepoint

Элемент списка SharePoint 2013 в папку c помощью CSOM

Иногда возникает необходимость перенести элемент списка в папку. Я подумал в сторону SharePoint Designer 2013, но там есть такая возможность для библиотек, но не для обычных списков. Серверный код писать и деплоить не хочется, а вот CSOM в самый раз. Возникли трудности, поэтому делюсь с вами полученным результатом.

sourceUrl — шаблон строки-ссылки на элемент для перемещения
targetUrl — шаблон строки-ссылки на элемент после перемещения в папку

static void MoveListItemToFolder()
{
    int itemToMove = 264;
    string targetFolderName = "Title(folder)";

    string sourceUrl = string.Format("/Lists/Reports/{0}_.000", itemToMove);
    string targetUrl = string.Format("https://siteUrl/Lists/Reports/{0}/{1}_.000", targetFolderName, itemToMove);

    SP.ClientContext clientContext = new SP.ClientContext(SiteUrl);

    File file = clientContext.Web.GetFileByServerRelativeUrl(sourceUrl);
    clientContext.Load(file, f => f.Name, f => f.TimeCreated);

    clientContext.ExecuteQuery();

    Console.WriteLine("Make sure! File {0} {1}", file.Name, file.TimeCreated);
    
    file.MoveTo(targetUrl, MoveOperations.Overwrite);
    clientContext.ExecuteQuery();

    Console.ReadLine();
}

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *