Begins the process of retrieving a direct access to the readonly data stream being received, beginning at the specified offset. Don't forget to call EndGetDownloadStream!
Dim instance AsAsyncFtpClientDim remoteFilename AsStringDim offset AsLongDim callback AsAsyncCallbackDim state AsObjectDim value AsIAsyncResult
value = instance.BeginGetDownloadStream(remoteFilename, offset, callback, state)
The filename of the file to retrieve. Some FTP servers may be case-sensitive!
offset
The byte offset (of the remote file) at which to start receiving data from the remote file.
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 = newbyte[ 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 );
}