У меня есть библиотека документов с включенным управлением версиями в SharePoint 2010. Я хочу получить файл, который возвращен, и для любого извлеченного файла мне нужно получить его последнюю зарегистрированную версию (документ). Я использую объектную модель на стороне сервера С# в SharePoint 2010. Кто-нибудь может мне помочь?
Получите последнюю зарегистрированную версию (документ) документа из библиотеки документов SP 2010.
comment
Было бы здорово, если бы вы могли предоставить минимально воспроизводимый пример вашей попытки.
- person mjwills   schedule 03.01.2019
Ответы (1)
Это может помочь. Он будет перебирать все элементы в списке, и если элемент извлечен, он найдет последнюю опубликованную версию.
using Microsoft.SharePoint;
using System;
using System.Linq;
class Program
{
static void Main(string[] args)
{
using (SPSite site = new SPSite("https://sharepoint.domain.com"))
using (SPWeb web = site.OpenWeb())
{
SPList list = web.GetList($"{web.ServerRelativeUrl.TrimEnd('/')}/DocumentLibrary");
SPListItemCollection items = list.GetItems(new SPQuery());
foreach (SPListItem item in items)
{
object checkedOutTo = item[SPBuiltInFieldId.CheckoutUser];
if (checkedOutTo == null)
{
// Latest version
Console.WriteLine($"{item.ID} | {item.Versions[0].VersionLabel}");
// Here are bytes of the file itself
byte[] bytes = item.File.OpenBinary();
}
else
{
// Find latest published version
SPFileVersion version = item.File.Versions
.Cast<SPFileVersion>()
.OrderByDescending(v => v.ID)
.Where(v => v.Level == SPFileLevel.Published)
.FirstOrDefault();
if (version != null)
{
Console.WriteLine($"{item.ID} | {version.VersionLabel} | {checkedOutTo}");
// Here are bytes of the file itself
byte[] bytes = version.OpenBinary();
}
else
Console.WriteLine($"{item.ID} | No published version | {checkedOutTo}");
}
}
}
}
}
person
Lukas Nespor
schedule
03.01.2019
Привет, Лукас, спасибо за ценный ответ! Это даст мне только номер версии, тогда как мне нужен фактический документ с этим номером версии.
- person Kalpesh; 04.01.2019
Спасибо Лукас за ценную помощь! Цените свое время и помогайте!
- person Kalpesh; 04.01.2019