Microsoft 365 and Office | SharePoint Server | Development
The process of building custom solutions for SharePoint Server.
This browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
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:
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();
}
The process of building custom solutions for SharePoint Server.
Answer accepted by question author
Try to use FileInformation class to get the file stream:
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();
FileInformation fileInfo = Microsoft.SharePoint.Client.File.OpenBinaryDirect(clientContext, serverRelativeURL);
using (var memoryStream = new MemoryStream())
{
fileInfo.Stream.CopyTo(memoryStream);
return memoryStream.ToArray();
}
Method “OpenBinaryStream” does not exist reading a file from SharePoint 2010
If an Answer is helpful, please click "Accept Answer" and upvote it.