public Uri SourceUri { get; }
the source item being downloaded.
This is the same value as the sourceUri parameter passed to DownloadFileAsync or GetDownloadStreamAsync method.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;
using Leadtools.SharePoint.Client;
public void SharePointClientDownloadFileAsyncExample()
{
// Replace SHAREPOINT_SITE_URI with a valid URL to a SharePoint site, for example
// http://SiteCollection/MySite
Uri siteUri = new Uri(SHAREPOINT_SITE_URI);
// Replace SHAREPOINT_FOLDER_NAME with a valid folder on the site above, for example
// "Documents" or "Documents\Sub Documents"
string folderName = SHAREPOINT_FOLDER_NAME;
// Replace SHAREPOINT_DOCUMENT_NAME with a valid document on the folder above, for example
// MyDocument.tif
string documentName = SHAREPOINT_DOCUMENT_NAME;
// Build the full URL to the document are we going to download
UriBuilder builder = new UriBuilder(siteUri);
builder.Path = Path.Combine(builder.Path, folderName);
builder.Path = Path.Combine(builder.Path, documentName);
Uri sourceDocumentUri = builder.Uri;
SharePointClient spClient = new SharePointClient();
// Optional: Set the credentials:
spClient.Credentials = new NetworkCredential(USER_NAME, PASSWORD, DOMAIN);
string tempFileName = Path.GetTempFileName();
// If this is a console application demo, we might exit the program before the operation completes,
// so use a wait handle to not exit this method till the opreation completes
AutoResetEvent wait = new AutoResetEvent(false);
// Download the SharePoint item to the temporary file asynchronously
spClient.DownloadCompleted += new EventHandler<SharePointClientDownloadCompletedEventArgs>(MyDownloadFileAsyncCompleted);
spClient.DownloadFileAsync(sourceDocumentUri, tempFileName, wait);
// Wait till the operation completes
wait.WaitOne();
wait.Close();
// Delete the temporary file we created
File.Delete(tempFileName);
}
private static void MyDownloadFileAsyncCompleted(object sender, SharePointClientDownloadCompletedEventArgs e)
{
// Remove our handler
SharePointClient spClient = sender as SharePointClient;
spClient.DownloadCompleted -= new EventHandler<SharePointClientDownloadCompletedEventArgs>(MyDownloadFileAsyncCompleted);
if (e.Error == null && !e.Cancelled)
{
// All is OK, use RasterCodecs to get its info
using (RasterCodecs codecs = new RasterCodecs())
{
using (CodecsImageInfo imageInfo = codecs.GetInformation(e.DestinationFileName, true))
{
// Show the image info
Console.WriteLine("URL: {0}", e.SourceUri);
Console.WriteLine("Pages: {0}", imageInfo.TotalPages);
Console.WriteLine("Size: {0} by {1} pixels", imageInfo.Width, imageInfo.Height);
Console.WriteLine("Resolution: {0} by {1} dpi", imageInfo.XResolution, imageInfo.YResolution);
Console.WriteLine("Bits/Pixel: {0}", imageInfo.BitsPerPixel);
}
}
}
else
{
// Some error occured
if (e.Error != null)
Console.WriteLine(e.Error.Message);
else
Console.WriteLine("User cancelled");
}
// Tell whoever is listening that we are done
EventWaitHandle wait = e.UserState as EventWaitHandle;
wait.Set();
}