Sample code for 30+ languages & platforms
C#

FTP Download with Progress Event Callbacks

See more FTP Examples

FTP download with progress event callbacks.

Chilkat C# Downloads

C#
// PercentDone callback method.
private void ftp_OnPercentDone(object sender, Chilkat.PercentDoneEventArgs args)
    {
    int percentDone = args.PercentDone;
    Debug.WriteLine("Percent Done: " + Convert.ToString(percentDone));
    }

// ProgressInfo callback method.
private void ftp_OnProgressInfo(object sender, Chilkat.ProgressInfoEventArgs args)
    {
    string name = args.Name;
    string value = args.Value;
    Debug.WriteLine(name + ": " + value);
    }

private void ChilkatExample()
    {
    bool success = false;

    // This example requires the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    Chilkat.Ftp2 ftp = new Chilkat.Ftp2();
    ftp.OnPercentDone += ftp_OnPercentDone;
    ftp.OnProgressInfo += ftp_OnProgressInfo;

    ftp.Hostname = "ftp.someFtpServer.com";
    ftp.Username = "myLogin";
    ftp.Password = "myPassword";

    // Connect and login to the FTP server.
    success = ftp.ConnectOnly();
    if (success != true) {
        Debug.WriteLine(ftp.LastErrorText);
        return;
    }

    success = ftp.LoginAfterConnectOnly();
    if (success != true) {
        Debug.WriteLine(ftp.LastErrorText);
        return;
    }

    // Change to the remote directory where the file is located.
    // This step is only necessary if the file is not in the home directory
    // of the FTP account.
    success = ftp.ChangeRemoteDir("junk");
    if (success != true) {
        Debug.WriteLine(ftp.LastErrorText);
        return;
    }

    string localFilename = "c:/temp/hamlet.xml";
    string remoteFilename = "hamlet.xml";

    // Ensure that we get PercentDone callbacks.
    ftp.AutoGetSizeForProgress = true;

    // Download the file.
    success = ftp.GetFile(remoteFilename,localFilename);
    if (success != true) {
        Debug.WriteLine(ftp.LastErrorText);
        return;
    }

    success = ftp.Disconnect();

    Debug.WriteLine("File Downloaded!");

    }