Syntax
Parameters
sourceUri
The full URI for the source item in the SharePoint server. This value cannot be null (Nothing in VB). It must be the URI to a valid SharePoint item, for example http://server/Shared Documents/File.ext
destinationFileName
The destination file name to download the item to. If the file already exists, it will be overwritten. This value cannot be null (Nothing in VB).
userState
The optional user-supplied state object that is used to identify the task that raised the DownloadCompleted event.
Example
This example will download a document asynchronously at the specified SharePoint URI into a disk file and then get the image information using Leadtools.Codecs.RasterCodecs.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;
using Leadtools.SharePoint.Client;
private static 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();
}
Imports Leadtools
Imports Leadtools.Codecs
Imports Leadtools.ImageProcessing
Imports Leadtools.ImageProcessing.Color
Imports Leadtools.SharePoint.Client
Private Shared Sub SharePointClientDownloadFileAsyncExample()
' Replace SHAREPOINT_SITE_URI with a valid URL to a SharePoint site, for example
' http://SiteCollection/MySite
Dim siteUri As New Uri(SHAREPOINT_SITE_URI)
' Replace SHAREPOINT_FOLDER_NAME with a valid folder on the site above, for example
' "Documents" or "Documents\Sub Documents"
Dim folderName As String = SHAREPOINT_FOLDER_NAME
' Replace SHAREPOINT_DOCUMENT_NAME with a valid document on the folder above, for example
' MyDocument.tif
Dim documentName As String = SHAREPOINT_DOCUMENT_NAME
' Build the full URL to the document are we going to download
Dim builder As New UriBuilder(siteUri)
builder.Path = Path.Combine(builder.Path, folderName)
builder.Path = Path.Combine(builder.Path, documentName)
Dim sourceDocumentUri As Uri = builder.Uri
Dim spClient As New SharePointClient()
' Optional: Set the credentials:
spClient.Credentials = New NetworkCredential(USER_NAME, PASSWORD, DOMAIN)
Dim tempFileName As String = 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
Dim wait As New AutoResetEvent(False)
' Download the SharePoint item to the temporary file asynchronously
AddHandler spClient.DownloadCompleted, AddressOf MyDownloadFileAsyncCompleted
spClient.DownloadFileAsync(sourceDocumentUri, tempFileName, wait)
' Wait till the operation completes
wait.WaitOne()
wait.Close()
' Delete the temporary file we created
File.Delete(tempFileName)
End Sub
Private Shared Sub MyDownloadFileAsyncCompleted(ByVal sender As Object, ByVal e As SharePointClientDownloadCompletedEventArgs)
' Remove our handler
Dim spClient As SharePointClient = CType(sender, SharePointClient)
RemoveHandler spClient.DownloadCompleted, AddressOf MyDownloadFileAsyncCompleted
If IsNothing(e.Error) AndAlso Not e.Cancelled Then
' All is OK, use RasterCodecs to get its info
Using codecs As New RasterCodecs()
Using imageInfo As CodecsImageInfo = 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)
End Using
End Using
Else
' Some error occured
If Not IsNothing(e.Error) Then
Console.WriteLine(e.Error.Message)
Else
Console.WriteLine("User cancelled")
End If
End If
' Tell whoever is listening that we are done
Dim wait As EventWaitHandle = CType(e.UserState, EventWaitHandle)
wait.Set()
End Sub