we are using the below code to download a file from the SharePoint 2010 on-premise and from SharePoint online site. The code is working fine SharePoint online file and getting the error Method "OpenBinaryStream" does not exist for the SharePoint 2010 on-premise site. Can anyone help me to fix the issue?
private static byte[] GetFileData(ClientContext clientContext, string SiteUrl, string path)
{
try
{
var web = clientContext.Web;
clientContext.Load(web, website => website.ServerRelativeUrl);
clientContext.ExecuteQuery();
var regex = new Regex(SiteUrl, RegexOptions.IgnoreCase);
var siteRelavtiveURL = regex.Replace(path, string.Empty);
var serverRelativeURL = web.ServerRelativeUrl + siteRelavtiveURL;
var file = web.GetFileByServerRelativeUrl(serverRelativeURL);
clientContext.Load(file);
clientContext.ExecuteQuery();
var stream = file.OpenBinaryStream();
clientContext.ExecuteQuery();
using (var memoryStream = new MemoryStream())
{
stream.Value.CopyTo(memoryStream);
return memoryStream.ToArray();
}
}
catch (Exception ex)
{
return new byte[0];
}
}