Xceed .NET Libraries Documentation
EndGetDownloadStream Method
Example 


Xceed.Ftp Assembly > Xceed.Ftp Namespace > AsyncFtpClient Class : EndGetDownloadStream Method
An System.IAsyncResult representing the status of the asynchronous operation.
Ends the process of retrieving a direct access to the readonly data stream being received.
Syntax
'Declaration
 
Public Function EndGetDownloadStream( _

   ByVal asyncResult As IAsyncResult _

) As Stream
'Usage
 
Dim instance As AsyncFtpClient

Dim asyncResult As IAsyncResult

Dim value As Stream

 

value = instance.EndGetDownloadStream(asyncResult)
public Stream EndGetDownloadStream( 

   IAsyncResult asyncResult

)

Parameters

asyncResult
An System.IAsyncResult representing the status of the asynchronous operation.

Return Value

The data System.IO.Stream to read from.
Remarks

The FTP client will remain in a "ReceivingFile" state until the stream is closed.

Example
The following example demonstrates how to use the BeginGetDownloadStream%M:Xceed.Ftp.AsyncFtpClient.EndGetDownloadStream(System.IAsyncResult)% methods to display the content of a text file.
Private Sub button1_Click(ByVal sender As Object, ByVal e As System.EventArgs )

  Dim ftp As New AsyncFtpClient()

  Dim result As IAsyncResult = ftp.BeginConnect( "ftp.server.com", Nothing, Nothing )

  

  While Not result.IsCompleted

    Application.DoEvents()

  WEnd

    

  ftp.EndConnect( result )

    

  result = ftp.BeginLogin( Nothing, Nothing )

  

  While Not result.IsCompleted 

    Application.DoEvents()

  WEnd

    

  ftp.EndLogin( result )

  

  result = ftp.BeginGetDownloadStream( "test.txt", 0, New AsyncCallback( AddressOf Me.end_download ), ftp )

  

  While Not result.IsCompleted 

    Application.DoEvents()

  WEnd

    

  result = ftp.BeginDisconnect( Nothing, Nothing )

  

  While Not result.IsCompleted 

    Application.DoEvents()

  WEnd

    

  ftp.EndDisconnect( result )

End Sub



Private Sub end_download( ByVal result As IAsyncResult )

  Dim client As AsyncFtpClient = result.AsyncState



 Try

     Dim stream As System.IO.Stream = client.EndGetDownloadStream( result )

    

     Dim buffer(32768) As Byte

     Dim bytesRead As Integer = 0

      

     ' Loop until we have nothing more to read from the source stream.

     ' We are assuming that the data contained in the file is text

     Dim data As String = string.Empty

     Do

       bytesRead = stream.Read(buffer, 0, buffer.Length)

      

       If bytesRead > 0 Then

         data += System.Text.Encoding.ASCII.GetString( buffer )

       End If

     Loop Until bytesRead = 0          

      

     System.Diagnostics.Debug.WriteLine( data )

      

     stream.Close()

   Catch exception As Exception

     System.Diagnostics.Debug.WriteLine( exception.Message )

   End Try

 End Sub
private void button1_Click(object sender, System.EventArgs e)

{

  AsyncFtpClient ftp = new AsyncFtpClient();

  IAsyncResult result = ftp.BeginConnect( "ftp.server.com", null, null );

  

  while( !result.IsCompleted )

    Application.DoEvents(); 

    

  ftp.EndConnect( result );

    

  result = ftp.BeginLogin( null, null ); 

  

  while( !result.IsCompleted )

    Application.DoEvents(); 

    

  ftp.EndLogin( result );

  

  result = ftp.BeginGetDownloadStream( "test.txt", 0, new AsyncCallback( this.end_download ), ftp );

  

  while( !result.IsCompleted )

    Application.DoEvents();

    

  result = ftp.BeginDisconnect( null, null );

  

  while( !result.IsCompleted )

    Application.DoEvents();

    

  ftp.EndDisconnect( result );    

}



private void end_download( IAsyncResult result )

{

  AsyncFtpClient client = result.AsyncState as AsyncFtpClient;

  

  try

  {

    using( System.IO.Stream stream = client.EndGetDownloadStream( result ) )

    {

      byte[] buffer = new byte[ 32768 ];

      int bytesRead = 0;

      

      // Loop until we have nothing more to read from the source stream.

      // We are assuming that the data contained in the file is text

      string data = string.Empty;

      while( ( bytesRead = stream.Read( buffer, 0, buffer.Length  ) ) > 0 )

      {

        data += System.Text.Encoding.ASCII.GetString( buffer );            

      }          

      

      System.Diagnostics.Debug.WriteLine( data );

    }

  }

  catch( Exception exception )

  {

    System.Diagnostics.Debug.WriteLine( exception.Message );

  }

}
Requirements

Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also

Reference

AsyncFtpClient Class
AsyncFtpClient Members