Xceed .NET Libraries Documentation
Xceed.Ftp Assembly / Xceed.Ftp Namespace / AsyncFtpClient Class / BeginGetDownloadStream Method / BeginGetDownloadStream(String,AsyncCallback,Object) Method
The filename of the file to retrieve. Some FTP servers may be case-sensitive!
Callback method to be called when the asynchronous operation is completed.
An object containing state information for this operation.
Example


In This Topic
    BeginGetDownloadStream(String,AsyncCallback,Object) Method
    In This Topic
    Begins the process of retrieving a direct access to the readonly data stream being received. Don't forget to call EndGetDownloadStream!
    Syntax
    'Declaration
     
    
    Public Overloads Function BeginGetDownloadStream( _
       ByVal remoteFilename As String, _
       ByVal callback As AsyncCallback, _
       ByVal state As Object _
    ) As IAsyncResult
    'Usage
     
    
    Dim instance As AsyncFtpClient
    Dim remoteFilename As String
    Dim callback As AsyncCallback
    Dim state As Object
    Dim value As IAsyncResult
     
    value = instance.BeginGetDownloadStream(remoteFilename, callback, state)
    public IAsyncResult BeginGetDownloadStream( 
       string remoteFilename,
       AsyncCallback callback,
       object state
    )

    Parameters

    remoteFilename
    The filename of the file to retrieve. Some FTP servers may be case-sensitive!
    callback
    Callback method to be called when the asynchronous operation is completed.
    state
    An object containing state information for this operation.

    Return Value

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

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

    Example
    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, null, null ); while( !result.IsCompleted ) Application.DoEvents(); using( System.IO.Stream stream = ftp.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 ); }
    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, null, null );
    
    while( !result.IsCompleted )
      Application.DoEvents();
    
    using( System.IO.Stream stream = ftp.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 );
    }
    Example
    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, null, null ); while( !result.IsCompleted ) Application.DoEvents(); using( System.IO.Stream stream = ftp.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 ); }
    Supported Frameworks

    .NET: net5.0, net5.0-windows, net6.0, net6.0-macos, net6.0-windows, net7.0, net7.0-macos, net7.0-windows, net8.0, net8.0-browser, net8.0-macos, net8.0-windows, net9.0, net9.0-browser, net9.0-macos, net9.0-windows, net10.0, net10.0-browser, net10.0-macos, net10.0-windows.

    .NET Standard: netstandard2.0, netstandard2.1

    .NET Framework: net20, net35, net40, net403, net45, net451, net452, net46, net461, net462, net463, net47, net471, net472, net48, net481.

    See Also