SPFileVersionCollection - 为什么版本按混合顺序排序?

2024-03-20

SPFileVersionCollection 和 SPListItemVersionCollection 版本控制对我来说似乎不一致。不一致对我来说不是问题,但排序顺序是问题。

SPListItemVersionCollection

我可以理解 ListItems 的版本控制,因为它们按降序存储:

SPContext.Current.ListItem.Versions.Count -> 5
SPContext.Current.ListItem.Versions[0].VersionId -> 1026 (2.2 latest version)
SPContext.Current.ListItem.Versions[1].VersionId -> 1025 (2.1)
SPContext.Current.ListItem.Versions[2].VersionId -> 1024 (2.0)
...                                [4].VersionId ->      (oldest version)

SP文件版本集合

但是我无法理解如何保存文档库项目的版本号:

SPContext.Current.ListItem.File.Versions.Count -> 4
SPContext.Current.ListItem.File.Versions[0].ID -> 512 (1.0 oldest one) 
SPContext.Current.ListItem.File.Versions[1].ID -> 513 (1.1)
SPContext.Current.ListItem.File.Versions[2].ID -> 1025 (2.1 latest version)
SPContext.Current.ListItem.File.Versions[3].ID -> 1024 (2.0 (EDIT: IsCurrentVersion = True))

它们既不是升序,也不是降序,而是混合的。

有什么理由吗SharePoint 团队决定存储这样的 SPFile 版本吗?他们是否期望我编写自己的方法来获取最新版本,或者是否有内置的方法?

注意:让我指出,对于文档库项目,SPListItem.File 不为 null。


我想我会在控制台应用程序中输出一些有关 SPFileVersionCollection 的信息,结果是:

  • 最后一个索引将保存当前索引(不是 起草但已发布)版本 (SPFileVersion.IsCurrentVersion 属性对此是正确的)
  • 0 索引保存最旧的版本
  • (最后索引 - 1)具有最后起草的版本(例如 2.7),(最后索引 - 2)包含 2.6 等。
  • 如果您刚刚上传了全新文档(次要版本,发布前),则 SPFile.Versions.Count = 0。
  • 如果您继续上传新文档版本但尚未发布版本,它们将添加到 SPFileVersionCollection,但在您发布版本之前,没有一个版本的 IsCurrentVersion 属性设置为 true。

啊,我有一个错误的假设,即最后一个文档草稿版本应该算作最新版本。当然,最后发布的版本是最新的!

不过,请注意不一致。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SPFileVersionCollection - 为什么版本按混合顺序排序? 的相关文章

随机推荐

  • 未提供有效凭据(机制级别:未提供有效凭据(机制级别:找不到任何 Kerberos tgt))httpclient

    我正在尝试使用 ntlm Auth 方案使用 http 客户端从服务器下载 pdf 文件 但我遇到以下错误时 当我使用 wget 以用户名和密码作为参数时 该文件正在下载 但如果我使用相同的用户名和密码 则使用 java 代码会失败并显示
  • AWS Glue 到 Redshift:是否可以替换、更新或删除数据?

    以下是我如何设置的一些要点 我将 CSV 文件上传到 S3 并设置了 Glue 爬虫来创建表和架构 我有一个 Glue 作业设置 它使用 JDBC 连接将数据从 Glue 表写入我们的 Amazon Redshift 数据库 该作业还负责映
  • 在 Haskell 中获取子列表

    可能很简单 但我浏览了文档并用谷歌搜索了示例 但我仍然不确定答案 如果我有一个这样的列表 1 2 3 4 5 6 7 8 9 0 我想提取一个切片 比如从索引 4 到索引 8 即我想要 5 6 7 8 9 在 Haskell 中执行此操作的
  • 定义一个大的vba字符串的最佳方法 - 即heredoc等效?

    我应该如何在VBA中定义大字符串 还有比下面这样的编码更好的方法吗 Dim largeString as String largeString This is a long block of text that I want to fill
  • 如何在 Swift 中对这个自定义 UITextField 进行单元测试?

    我创建了一个像这样的自定义 UITextField import Foundation import UIKit class NoZeroTextField UITextField UITextFieldDelegate required
  • 如何在 Angular 5 中为每个 HTTP 请求显示微调器?

    我是 Angular 5 的新手 如何编写一个通用函数来为 Angular 5 中的每个 HTTP 请求显示微调器 请帮我实现这个 您可以使用角度Http拦截器 https angular io api common http HttpIn
  • GStreamer Tee(多路复用器)

    我正在尝试将视频流 来自我的网络摄像头 存储到 MKV 和 FLV 文件中 这意味着我必须在 h264 编码后分割视频和音频管道 并使用不同的复用器复用每个路径 这就是我想象的它应该如何工作 gt queue gt matroskamux
  • 监听/处理 JPanel 事件

    先生们女士们晚上好 我有一个无法解决的 Java Swing 问题 也许你可以帮助我 这里是 我有一个使用 BorderLayout 的 JFrame 和许多 JPanel 每次我需要建立一个新屏幕 即从主菜单中 单击搜索按钮时 转到搜索菜
  • 什么是数组到指针的转换又名。衰变?

    什么是数组到指针的转换又名 衰变 和数组指针有关系吗 据说数组 衰变 成指针 C 数组声明为int numbers 5 不能被重新指向 即你不能说numbers 0x5a5aff23 更重要的是 衰变一词意味着类型和维度的损失 number
  • 使用 Ajax 的 Jquery 日期选择器无法正常工作

    我的网站有很多类别 每个类别页面都有自己的帖子 在这里我使用了 jQuery datepicker 如果用户想查看 8 月 20 日的帖子 他们可以单击日历上的特定日期并查看日期帖子 另一件事 如果我打开一个类别 则应该只显示今天的帖子 请
  • 我想使用 mpdf 在 PDF 中设置页眉和页脚

    我已经使用生成了 PDFmpdfCodeIgniter 中的库 我想附加带有适当边距的页眉图像和页脚图像 我创建了一个代码 但页眉和页脚重叠 controller this gt load gt library m pdf param A4
  • 从 C 中的 UTF8 字符串中删除变音符号

    我正在编写一个 C 程序来搜索数据库中的大量 UTF 8 字符串 其中一些字符串包含带教义的英文字符 例如重音符号等 搜索字符串是由用户输入的 因此很可能不包含此类字符 有没有一种方法 函数 库等 可以从字符串中删除这些字符 或者只是执行不
  • unicharset_extractor:找不到命令

    我想使用超正方体创建新的列车数据 因此 请按照以下网站中提到的步骤进行操作 https blog cedric ws how to train tesseract 301 https blog cedric ws how to train
  • Scriptom Groovy 格式化 Excel 示例

    我正在寻找一些 Groovy 对 Excel 文档执行基本格式化命令的示例 我还想知道在哪里可以找到这些命令的存储库 你会怎样 插入一行 将单元格格式设置为短日期 时间等 将整列或整行加粗 怎么样 POI 3 9 假设您有一个输入 XLS
  • JMESPath - 连接嵌套数组中的项目

    我有一个 JSON key processId 29231 fields attachment id 79572 filename File1 png id 74620 filename File2 docx id 79072 filena
  • WinForms中发生关闭事件时如何保存数据?

    我想要一个消息框来询问表单关闭事件上未保存的数据 如果用户选择 是 则将数据保存在文本文件中并退出应用程序 如果用户选择不保存而不退出应用程序 我尝试了以下代码 但它不会关闭应用程序并使消息框一次又一次出现 public void Save
  • 带有 upstart 和 syslog 的 Ubuntu docker 容器

    四处搜寻后 我仍然很困惑你是否可以拥有码头集装箱运行 Ubuntu 并运行初始化系统 暴发户 and syslog 或不 我知道 docker 容器是用于运行单个进程而不是完整的操作系统 但我的用例是在各种 Linux 发行版上测试守护进程
  • 打印同一行两个字符串之间的文本

    我已经搜索了很长时间 但未能找到解决我的问题的有效答案 我从 HTML 文件中提取了一行sed 162 d skinlist html 其中包含文本 a href skin dwarf red beard 734 title Dwarf R
  • python.exe:没有名为 pyuic5 的模块

    我想将 ui 文件转换为 py 但 pyuic5 无法识别 当我进入 python 目录时 会出现此错误消息 如何修复这个错误 更通用的选项是 python m PyQt5 uic pyuic filename ui o filename
  • SPFileVersionCollection - 为什么版本按混合顺序排序?

    SPFileVersionCollection 和 SPListItemVersionCollection 版本控制对我来说似乎不一致 不一致对我来说不是问题 但排序顺序是问题 SPListItemVersionCollection 我可以