使用客户端对象模型获取提供者托管应用中的先前版本文件

时间:2014-08-25 09:34:27

标签: c# sharepoint sharepoint-2013 client-object-model

如何使用客户端对象模型获取以前版本的文件。 随着代码我得到   Microsft.sharepoint.client.FileVersion对象符合预期。

但是尝试做Web.GetFileByServerRelativeUrl(FileVersion.Url)失败。

在服务器对象模型中,我知道,我们可以使用SPFileVersion.OpenBinaryStream()

寻找客户端对象模式解决方案。

当我提供相对网址时,我收到“找不到文件”的错误。

相对url格式显然没有任何问题,因为它适用于除版本文件之外的任何其他文件的普通get文件。

1 个答案:

答案 0 :(得分:0)

我通过使用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;

        }