Products | Support | Email a link to this topic. | Send comments on this topic. | Back to Introduction - All Topics | Help Version 19.0.5.5
|
Leadtools.SharePoint.Client Namespace > SharePointClient Class : DownloadFileAsync Method |
http://server/Shared Documents/File.ext
'Declaration Public Sub DownloadFileAsync( _ ByVal sourceUri As Uri, _ ByVal destinationFileName As String, _ ByVal userState As Object _ )
'Usage Dim instance As SharePointClient Dim sourceUri As Uri Dim destinationFileName As String Dim userState As Object instance.DownloadFileAsync(sourceUri, destinationFileName, userState)
http://server/Shared Documents/File.ext
This method will return control immediately to your program and the DownloadCompleted event will occur when the download operation is completed (whether or not the operation is successful).
To download a file synchronously, use the DownloadFile method.
To download an item to a stream, use the GetDownloadStream or GetDownloadStreamAsync method.
To upload an item to SharePoint, use the UploadFile, UploadFileAsync, UploadStream or UploadStreamAsync method.
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.
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
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(); }