This post points to the various examples and blog posts scattered among the chilkatsoft.com, example-code.com, and cknotes.com involving progress monitoring of FTP uploads and downloads using the Chilkat FTP2 ActiveX, .NET component, and C++ libs.
Important for Monitoring Upload Progress: The SendBufferSize property is set to a large value (512K) to maximize performance. Unfortunately, this usually ruins the frequency of “percent done” callbacks for upload (not downloads, just uploads). To improve the upload “percent done” callback frequency, set the SendBufferSize property to a smaller value, such as 4K. It may slow the upload transfer rate a bit, but it improves the progress monitoring capability. You can experiment with different values for SendBufferSize to determine what best suits your needs.
Monitoring Download Percent-Done: Be sure to read about the AutoGetSizeForProgress and the ProgressMonSize properties in the Chilkat online reference documentation. Depending on your FTP server, it may be necessary to set the AutoGetSizeForProgress equal to True to properly receive percent-done event callbacks. In most cases, neither property is needed — it entirely depends on whether the FTP server provides file-size information in the intermediate response to a “RETR” FTP protocol command.
FTP2 Events in C# and VB.NET:
- Don’t forget to enable events by setting the EnableEvents property = True.
- Using the ProgressMonSize property (in C#)
- FTP Upload Progress Monitoring in C#
- FTP Download Progress Monitoring in C#
- FTP Upload Progress Monitoring in VB.NET
- FTP Download Progress Monitoring in VB.NET
- Adding a Callback Event Handler in VB.NET
FTP2 Events in VB6
- FTP Upload with Progress Monitoring in VB6
- FTP Download with Progress Monitoring in VB6
- ProgressMonSize property in VB6
FTP2 Events in C++
FTP2 Events in FoxPro:
- FTP Upload w/ Progress Monitoring in FoxPro
- FTP Download w/ Progress Monitoring in FoxPro
- Blog post detailing FTP2 events using FoxPro syntax.