【发布时间】:2010-01-21 22:15:25
【问题描述】:
我有一些代码试图使用 ootb 版本控制和 SharePoint API 将共享点文档及其元数据属性“回滚”到以前的版本。这是我的代码示例:
int versionCount = item.Versions.Count;
if (versionCount > 0)
{
// this only restores properties
item.Versions.Restore(1);
}
使用 1(当前版本之前的最新版本)调用 restore 的预期结果是恢复文件和元数据。相反,只有元数据被恢复,当前文件被复制到新的“恢复”版本。
版本页面清楚地显示多个版本,通过 UI 恢复即可恢复所需文件。
此外,我尝试使用item.File.Versions 却发现item.File.Versions.Count 是1。
谁能提供任何见解?
【问题讨论】:
-
愚蠢的问题,但是该项目的版本历史记录页面中显示了多少版本的文档?首先看看 SharePoint 认为该文档的版本数是多少,如果不是您所期望的,那么至少您知道这不是您的代码错误。
-
版本历史页面有3个版本。此外,当我使用版本历史记录页面恢复所需版本时,会恢复正确的文件。
-
那里也没有帮助。如果我直接从 web/folder 对象中检索文件对象,SPFile.Versions 集合仍然只包含当前版本。版本页面清楚地显示了多个版本。
-
因此,版本页面似乎为文件和项目版本的组合生成了一个版本条目。当 SPFile.Versions 为 1 时,这表示该文件除了当前版本之外还有一个版本。 SPListItem.Versions 包含文件的所有版本,包括当前版本(在索引 0 处)。
标签: sharepoint