ComponentPro UltimateFtp

      MultiPartDownload(String, String, Int32, MultiPartDownloadErrorEventHandler, MultiPartDownloadCompletedEventHandler) Method

      See AlsoMembers Options: Show AllLanguage Filter: AllSend comments on this topic to ComponentPro
      Downloads a file on the server and writes to the specified local file using multiple threads.


      public MultiPartDownloadResult MultiPartDownload(
         string remotePath, 
         string localPath, 
         int parts, 
         MultiPartDownloadErrorEventHandler errorHandler, 
         MultiPartDownloadCompletedEventHandler downloadCompletedEventHandler


      The remote file path and name to download.
      The local file path and name to store the downloaded data.
      The number of threads used to download the remote file.
      The error handler that is called whenever an error occurs, giving an opportunity to display the error and retry downloading.
      The callback function that is called when the download operation completes.

      Return Value

      The download result.


      Shows how to use the MultiPartDownload method to download multiple parts of a remote file using multiple threads.

      using System;
      using System.Collections.Generic;
      using System.Text;
      using System.IO;
      using System.Text.RegularExpressions;
      using ComponentPro.IO;
      using ComponentPro.Net;
      using System.Threading;
      static void Main()
          // Create a new class instance. 
          using (Ftp client = new Ftp())
              // Connect to the FTP server. 
              // Authenticate. 
              client.Authenticate("userName", "password");
              // ... 
              client.Progress += ClientOnProgress;
              client.MultiPartDownload("/folder/remotefile.dat", "c:\\localfile.dat", 5, DownloadErrorHandler, DownloadCompletedHandler);
              // ... 
      static void DownloadErrorHandler(MultiPartDownloadErrorEventArgs e)
          Console.WriteLine("Error: " + e.Error.Message);
          Console.Write("Do you want to retry (y/n)?");
          int c = Console.Read();
          if (c == 'y')
              e.Retry = true;
      static void DownloadCompletedHandler(MultiPartDownloadResult result)
          Console.WriteLine("Success: " + result.Success);
      private static void ClientOnProgress(object sender, FileSystemProgressEventArgs e)
          Console.WriteLine("Progression Percentage: " + e.Percentage);


      .NET Compact Framework.NET Compact Framework

      Supported version: 2.0, 3.5, and 3.9
      Assembly: ComponentPro.Ftp.CF (in ComponentPro.Ftp.CF.dll)

      .NET Framework.NET Framework

      Supported version: 2.0, 3.0, 3.5, 4.0, 4.5.x, 4.6.x and later
      Assembly: ComponentPro.Ftp (in ComponentPro.Ftp.dll)

      Portable Class Library for Windows Phone 8.1 and Windows 8.1 Store AppsPortable Class Library for Windows Phone 8.1 and Windows 8.1 Store Apps

      Supported version: 4.6.x and later
      Assembly: ComponentPro.Ftp.WinPcl (in ComponentPro.Ftp.WinPcl.dll)

      Universal Windows Platform (includes Windows 10 Mobile, Windows 10 Store Apps and Windows 10 IoT)Universal Windows Platform (includes Windows 10 Mobile, Windows 10 Store Apps and Windows 10 IoT)

      Supported version: 4.6.x and later
      Assembly: ComponentPro.Ftp.Uwp (in ComponentPro.Ftp.Uwp.dll)

      Xamarin AndroidXamarin Android

      Supported version: 2.3 and later
      Assembly: ComponentPro.Ftp.Android (in ComponentPro.Ftp.Android.dll)

      Xamarin MacXamarin Mac

      Supported version: 2.0.x and later
      Assembly: ComponentPro.Ftp.Mac (in ComponentPro.Ftp.Mac.dll)

      Xamarin iOSXamarin iOS

      Supported version: 5.1.x and later
      Assembly: ComponentPro.Ftp.iOS (in ComponentPro.Ftp.iOS.dll)

      See Also