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

Jan*_*rgs 9 version-control sharepoint document wss-3.0

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)
Run Code Online (Sandbox Code Playgroud)

SPFileVersionCollection

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

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))
Run Code Online (Sandbox Code Playgroud)

它们既不是升序也不是降序,而是混合的东西.

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

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

Jan*_*rgs 6

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

  • 最后一个索引将保留当前(未起草但已发布)的版本(SPFileVersion.IsCurrentVersion属性为TRUE)
  • 0索引包含最旧的版本
  • (最后一个索引 - 1)有最后一个草稿版本(例如2.7)和(最后一个索引 - 2)拥有2.6等.
  • SPFile.Versions.Count = 0如果您刚刚上传了全新文档(次要版本,则在发布之前).
  • 如果继续上载新文档版本但尚未发布,则会添加到SPFileVersionCollection,但是在发布之前,没有任何一个将IsCurrentVersion属性设置为true.

啊,我错误地认为最后一个文件草案应该算作最新版本.当然,最后一个PUBLISHED版本是最新版本!

但是,要注意不一致.