Sharepoint:如何在不更改版本的情况下添加文件?

时间:2011-10-24 08:00:24

标签: sharepoint

我需要将文件的新版本添加到 SPFileCollection 而不更改版本(这是pdf文件内容的系统更新)

UpdateOverwriteVersion 允许我更改元数据,但有没有办法更改文件的内容(字节)?

替代方法: 好的,正如Stefan所发现的那样,没有令人满意的解决方案。 我找到了两个解决方法:

1。 (请注意,如果有人在该列表上工作,关闭版本控制可能会导致错误行为... - Stefan

oFile = oWeb.GetFile(url);
oFile.Item.ListItems.List.EnableVersioning = false;
oFile.Item.ListItems.List.Update();
oFolder.Files.Add(oFile.Name, aBytes, fileProperties, true);
oFile.Item.ListItems.List.EnableVersioning = true;
oFile.Item.ListItems.List.Update();

2

oFile = oWeb.GetFile(sAdres);
int iFileVersion = oFile.UIVersion;
oFolder.Files.Add(oFile.Name, aBytes, fileProperties, true);
oFileVersion = oFile.Versions.GetVersionFromID(iFileVersion);
if (null != oFileVersion && !oFileVersion.IsCurrentVersion)
{
    oFileVersion.Delete();
}

2 个答案:

答案 0 :(得分:2)

为什么不使用SystemUpdate(false)

http://msdn.microsoft.com/en-us/library/ms481195.aspx

答案 1 :(得分:0)

您可以加载SPFile对象,然后调用SPFile.SaveBinary(Stream, SPFileSaveBinaryParameters)方法来更新它的内容。

使用SFileSaveBinaryParameters的{​​{3}}属性,您可以指定是否应创建新版本。

  

[...]这是设计的。据我所知,没有其他解决方案。

来自CreateVersion的主持人的引用。