上传文件版本 - 客户端对象模型
-
16-10-2019 - |
题
我有一个带有版本的文件的库。我已经准备好上传的文件(1版= 1个文件)。如何创建新版本?我是否刚刚设置文件的内容属性并进行更新?请分享您的实验,谢谢
编辑:我有这样的东西:
File1|v1
File1|v2
File1|v4
File2|v2
File2|v5
所以我缺少版本。上传时是否可以设置文件版本(项目的字段?)?如果没有,我将用上一个/下一个版本填充缺少的版本,例如File2 | V1将填充File2 | V2。
解决方案
我不知道如何编程分配版本编号,但是如果可以让SharePoint分配版本号...
使用该方法的服务器版本:
SPFileCollection.Add(urlOfFile, fileContent, overwrite);
如果您传递oftrite = true,并且文档库已打开版本控制,我认为它将创建文档的新版本。 (这就是通过浏览器的行为。)我假设该方法的客户端对象模型版本的行为方式相同。
FileCreationInformation fci = new FileCreationInformation();
fci.Url = urlOfFile;
fci.Content = fileContent;
fci.Overwrite = true;
folder.files.Add(fci);
因此,只要您以其版本的正确顺序上传文件,SharePoint就应该为您创建每个版本。
其他提示
这是一个将模拟文件的版本控制的小代码示例
public File changeDocumentVersion(string version,File file){
string [] versions = version.Split(new char[]{'.'});
int minor = Int32.Parse(versions[1]);
int major = Int32.Parse(versions[0]);
for (int i = 1; i < major; i++)
{
file.CheckOut();
file.CheckIn("versioning", CheckinType.MajorCheckIn);
}
for (int i = 0; i < minor; i++)
{
file.CheckOut();
file.CheckIn("versioning", CheckinType.MinorCheckIn);
file.Context.Load(file);
file.Context.ExecuteQuery();
}
return file;
}
只要您已经启用了版本控制(在列表/库设置下找到,然后启用版本操作)启用SP将为您负责版本控制。