C# 使用客户端对象模型在提供商托管的应用程序中获取以前的版本文件
如何使用客户端对象模型获取以前版本之一的文件。 我得到的代码 Microsft.sharepoint.client.FileVersion对象与预期的一致 但是尝试执行Web.GetFileByServerRelativeUrl(FileVersion.Url)失败 我知道,在服务器对象模型中,我们可以使用SPFileVersion.OpenBinaryStream() 正在寻找客户端对象模式解决方案 当我提供相对url时,我得到的错误是“找不到文件”C# 使用客户端对象模型在提供商托管的应用程序中获取以前的版本文件,c#,sharepoint,sharepoint-2013,sharepoint-clientobject,C#,Sharepoint,Sharepoint 2013,Sharepoint Clientobject,如何使用客户端对象模型获取以前版本之一的文件。 我得到的代码 Microsft.sharepoint.client.FileVersion对象与预期的一致 但是尝试执行Web.GetFileByServerRelativeUrl(FileVersion.Url)失败 我知道,在服务器对象模型中,我们可以使用SPFileVersion.OpenBinaryStream() 正在寻找客户端对象模式解决方案 当我提供相对url时,我得到的错误是“找不到文件” 相对url格式显然没有问题,因为它适用于除
相对url格式显然没有问题,因为它适用于除版本文件以外的任何其他文件的正常get文件。我通过使用WebClient下载文件数据解决了这个问题。没有可用于此目的的sharepoint客户端对象模型方法。这很有效
public static byte[] GetByteArrayFromVersionFile(Web web,string fileVersionUrl)
{
WebClient wc = new WebClient();
wc.UseDefaultCredentials = true;
wc.Headers.Add("user-agent", " Mozilla/5.0 (Windows NT 6.1; WOW64; rv:25.0) Gecko/20100101 Firefox/25.0");
byte[] content = wc.DownloadData(web.Url + "/" + fileVersionUrl);
return content;
}