private static void DownloadVersion()
{
using (ClientContext clientContext = new ClientContext("siteurl"))
{
NetworkCredential credentials = new NetworkCredential("username", "password", "domain");
clientContext.Credentials = credentials;
Web web = clientContext.Web;
clientContext.Load(web);
clientContext.ExecuteQuery();
Microsoft.SharePoint.Client.File sourceFile = web.GetFileByServerRelativeUrl(web.ServerRelativeUrl + "/Documents/Test.docx");
clientContext.Load(sourceFile, item => item.Name);
clientContext.ExecuteQuery();
var versions = sourceFile.Versions;
clientContext.Load(versions);
var oldVersions = clientContext.LoadQuery(versions.Where(v => v != null));
clientContext.ExecuteQuery();
string pathUser = Environment.GetFolderPath(Environment.SpecialFolder.UserProfile);
string pathDownload = Path.Combine(pathUser, "Downloads");
if (oldVersions != null)
{
foreach (Microsoft.SharePoint.Client.FileVersion _version in oldVersions)
{
clientContext.Load(_version, item => item.VersionLabel);
clientContext.ExecuteQuery();
if (!Directory.Exists(pathDownload))
{
Directory.CreateDirectory(pathDownload);
}
using (var webClient = new System.Net.WebClient())
{
webClient.Credentials = credentials;
string filePath = Path.Combine(pathDownload + "\\", Path.GetFileNameWithoutExtension(sourceFile.Name) + _version.VersionLabel + ".docx");
webClient.DownloadFile("siteUrl" + _version.Url, filePath);
}
}
}
}
}