从 SP 2010 文档库获取文档的最新签入版本(文档)
Get the latest checked-in version (document) of a document from SP 2010 doc library
我有一个在 SharePoint 2010 中启用了版本控制的文档库。
我想获取已签入的文件,对于任何已签出的文件,我需要获取其最新的签入版本(文档)。
我在 SharePoint 2010 上使用 c# 服务器端对象模型。
谁能帮帮我吗?
这可能会有所帮助。它将遍历列表中的所有项目,如果该项目已签出,它将找到最新发布的版本。
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}");
}
}
}
}
}
我有一个在 SharePoint 2010 中启用了版本控制的文档库。 我想获取已签入的文件,对于任何已签出的文件,我需要获取其最新的签入版本(文档)。 我在 SharePoint 2010 上使用 c# 服务器端对象模型。 谁能帮帮我吗?
这可能会有所帮助。它将遍历列表中的所有项目,如果该项目已签出,它将找到最新发布的版本。
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}");
}
}
}
}
}