在具有客户端对象模型的提供程序托管的应用程序中获取以前的版本文件

本文关键字:获取 应用程序 文件 版本 程序 客户端 对象模型 | 更新日期: 2023-09-27 18:19:28

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

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

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

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

当我提供相对url时,我得到错误为"找不到文件"。

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

在具有客户端对象模型的提供程序托管的应用程序中获取以前的版本文件

我通过ussing 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;
        }