我需要将文件的新版本添加到 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();
}
答案 0 :(得分:2)
为什么不使用SystemUpdate(false)
答案 1 :(得分:0)
您可以加载 SPFile
对象,然后调用SPFile.SaveBinary(Stream, SPFileSaveBinaryParameters)
方法来更新它的内容。
使用 SFileSaveBinaryParameters
的{{3}}属性,您可以指定是否应创建新版本。
[...]这是设计的。据我所知,没有其他解决方案。
来自CreateVersion
的主持人的引用。