ComponentPro UltimateFtp

      GetDownloadStreamAsync(String, Object) Method

      See AlsoMembers Options: Show AllLanguage Filter: AllSend comments on this topic to ComponentPro
      Asynchronously returns a Stream for reading data from the remote file.

      Syntax

      public Task<Stream> GetDownloadStreamAsync(
         string remotePath, 
         object userState = null
      )

      Parameters

      remotePath
      The path of the remote file.
      userState
      A user-provided object that identifies this particular asynchronous operation.

      Return Value

      An object that references the asynchronous operation.

      Examples

      Shows how to use GetDownloadStreamAsync method to asynchronously

      using System;
      using System.IO;
      using ComponentPro.IO;
      using ComponentPro.Net;
      using ComponentPro;
      
      ...
      
      async static void Main2()
      {
          // Create a new class instance. 
          Ftp client = new Ftp();
      
          // Connect to the FTP server. 
          client.Connect("myserver");
      
          // Authenticate. 
          client.Authenticate("userName", "password");
      
          // ... 
       
          // The GetDownloadStreamCompleted event is fired when the operation completes. 
          client.GetDownloadStreamCompleted += callback2;
          // Get download stream of a remote file. 
          Stream downloadStream = await client.GetDownloadStreamAsync("/myfolder/test.data", "user state");
      
          // ... 
       
          // Create new file 
          FileStream fo = new FileStream("c:\\temp\\test.data", FileMode.Create);
      
          byte[] buf = new byte[8192];
          int read;
          while ((read = downloadStream.Read(buf, 0, 8192)) > 0) // Read from the download stream. 
          {
              fo.Write(buf, 0, read); // And write to the compression Zlib stream. 
          }
          fo.Close();
          downloadStream.Close();
      
          // Disconnect. 
          client.Disconnect();
      }
      
      private static void callback2(object sender, ExtendedAsyncCompletedEventArgs<Stream> e)
      {
          if (e.Error != null)
              Console.WriteLine("Error: " + e.Error.ToString());
          Console.WriteLine("Method completed. User state: " + e.UserState);
      }

      Shows how to use GetDownloadStreamAsync method to asynchronously (Event-based approach).

      using System;
      using System.IO;
      using ComponentPro.IO;
      using ComponentPro.Net;
      using ComponentPro;
      
      ...
      
      public static void Main2()
      {
          // Create a new class instance. 
          Ftp client = new Ftp();
      
          // Connect to the FTP server. 
          client.Connect("myserver");
      
          // Authenticate. 
          client.Authenticate("userName", "password");
      
          // ... 
       
          // Register an event handler. 
          client.GetDownloadStreamCompleted += callback2;
          // Get download stream of a remote file. 
          client.GetDownloadStreamAsync("/myfolder/test.data", "user state");
      
          // Wait until it's completed here. 
          // ... 
       
          // Disconnect. 
          client.Disconnect();
      }
      
      static void callback2(object sender, ExtendedAsyncCompletedEventArgs<Stream> e)
      {
          // Ftp client = (Ftp)sender; 
          if (e.Error != null)
              Console.WriteLine("Error: " + e.Error.ToString());
          else 
          {
              Stream downloadStream = e.Result;
      
              // Create new file 
              FileStream fo = new FileStream("c:\\temp\\test.data", FileMode.Create);
      
              byte[] buf = new byte[8192];
              int read;
              while ((read = downloadStream.Read(buf, 0, 8192)) > 0) // Read from the download stream. 
              {
                  fo.Write(buf, 0, read); // And write to the compression Zlib stream. 
              }
              fo.Close();
              downloadStream.Close();
          }
      
          Console.WriteLine("User-state: " + e.UserState);
      }

      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)

      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