ComponentPro UltimateFtp

      Download(String, String, TransferOptions, Int32, Boolean) Method

      See AlsoMembers Options: Show AllLanguage Filter: AllSend comments on this topic to ComponentPro
      Downloads the specified remote file or directory to the local directory using multiple threads. This method only downloads the items in the specified directory if the remotePath parameter does not end with a directory separator (e.g. '/'). To also create the directory in the destination, add a directory separator character at the end of that parameter.

      Syntax

      public FileSystemTransferStatistics Download(
         string remotePath, 
         string localPath, 
         TransferOptions options, 
         int threads, 
         bool waitForThreads
      )

      Parameters

      remotePath
      The path and name of the remote directory where the files will be downloaded to the local folder. This parameter can include filtering masks to limit the files that are downloaded. For example, if ""(empty string) is specified, the entire contents of the current folder will be downloaded. If "*.txt" is used, all the files in the current folder that have the .TXT extension will be downloaded. If "/mydir/*.dat;*.cs,*.vb" is used (masks are delimited by ',', ';', and '|' characters), files with the DAT, CS, or VB extension in "/mydir" will be downloaded. If no masks specified, the whole content of the remote directory should be downloaded. The final search condition depends on the SearchCondition and SearchConditionCombinedWithMasksInSourcePath settings of the options parameter. If this value ends with a directory separator character like '/' or '\', the containing directory will also be downloaded. For example, if "/folder/" is used, files and subdirectories of "folder" directory and itself will be downloaded; the destination directory will contain "folder" directory and its contents. Attention: some servers may be case-sensitive!
      localPath
      The path of the local directory to receive files from the server.
      options
      The transfer options object which provides many settings to control the file transfer process.
      threads
      The number of threads used for the simultaneous file transfer.
      waitForThreads
      A boolean value indicating whether to wait for the completion of all threads. If this parameter is true, this method blocks the caller process's execution until all threads have completed; otherwise, this method immediately returns the control to the caller process.

      Return Value

      A FileSystemTransferStatistics object that contains transfer statictics and a list of processed files and directories.

      Examples

      Use 50 threads to download files simultaneously from the local disk.

      using ComponentPro;
      using ComponentPro.IO;
      using ComponentPro.Net;
      
      ...
      
      using (Ftp ftp = new Ftp())
      {
          // Connect to the FTP server. 
          ftp.Connect("localhost");
      
          // Authenticate. 
          ftp.Authenticate("test", "test");
      
          ftp.Download(
              "/data", // The remote directory containing files and folders to download on the FTP server. 
              @"C:\dest", // The local directory. 
              new TransferOptions(),
              50, // Use 50 threads 
              true // Wait until all the threads complete. 
              );
      
          // Download DOC and IMG files only 
          ftp.Download(
              "/data/*.doc;*.img", // The remote directory containing files and folders to download on the FTP server. 
              @"C:\dest", // The local directory. 
              new TransferOptions(),
              50, // Use 50 threads 
              true // Wait until all the threads complete. 
              );
      }

      Framework

      .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