从 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 文档库中获取文档的最新签入版本(文档)的主要内容,如果未能解决你的问题,请参考以下文章

如何回滚 TFS 签入?

以编程方式编写 TFS 命令行以获取最新版本、签出和签入

SQL 查询 - 获取每个文档的最新文档版本 URL

如何从 MySQL 列中的 JSON 文档中获取最新值?

如何从 Maven 存储库中找到最新版本的工件

如何在 TFS 2010 中恢复(回滚)签入