从 SP 2010 文档库中获取文档的最新签入版本(文档)
Posted
技术标签:
【中文标题】从 SP 2010 文档库中获取文档的最新签入版本(文档)【英文标题】:Get the latest checked-in version (document) of a document from SP 2010 doc library 【发布时间】:2019-01-03 11:11:41 【问题描述】:我有一个在 SharePoint 2010 中启用了版本控制的文档库。 我想获取已签入的文件,对于任何签出文件,我需要获取其最新的签入版本(文档)。 我在 SharePoint 2010 上使用 c# 服务器端对象模型。 谁能帮帮我?
【问题讨论】:
如果你能提供一个minimal reproducible example 你迄今为止的尝试,那就太棒了。 【参考方案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");
【讨论】:
嗨 Lukas 感谢您的宝贵回复!这只会给我版本号,而我需要该版本号的实际文档。 感谢 Lukas 的宝贵帮助!感谢您的时间和帮助!以上是关于从 SP 2010 文档库中获取文档的最新签入版本(文档)的主要内容,如果未能解决你的问题,请参考以下文章