Objective-C
Objective-C
FTP Download with Progress Event Callbacks
See more FTP Examples
FTP download with progress event callbacks.Chilkat Objective-C Downloads
// This is the interface header ftpProgress.h
#import "CkoFtp2Progress.h"
@interface ftpProgress : CkoFtp2Progress {
}
- (void)PercentDone: (NSNumber *)pctDone abort: (BOOL *)abort;
- (void)ProgressInfo:(NSString *)pinfName value:(NSString *)pinfValue;
@end
// ----------------------------------------------------
#import <ftpProgress.h>
@implementation ftpProgress
- (void)PercentDone: (NSNumber *)pctDone abort: (BOOL *)abort
{
int percentDone = [pctDone intValue];
NSLog(@"%@%d",@"Percent Done: ",percentDone);
}
- (void)ProgressInfo:(NSString *)pinfName value:(NSString *)pinfValue
{
NSLog(@"%@%@%@",pinfName,@": ",pinfValue);
}
@end
// ----------------------------------------------------
#import <CkoFtp2.h>
#import <NSString.h>
BOOL success = NO;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
CkoFtp2 *ftp = [[CkoFtp2 alloc] init];
ftpProgress *ftp_progress = [[ftpProgress alloc] init];
[ftp setEventCallbackObject: ftp_progress];
ftp.Hostname = @"ftp.someFtpServer.com";
ftp.Username = @"myLogin";
ftp.Password = @"myPassword";
// Connect and login to the FTP server.
success = [ftp ConnectOnly];
if (success != YES) {
NSLog(@"%@",ftp.LastErrorText);
return;
}
success = [ftp LoginAfterConnectOnly];
if (success != YES) {
NSLog(@"%@",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 != YES) {
NSLog(@"%@",ftp.LastErrorText);
return;
}
NSString *localFilename = @"c:/temp/hamlet.xml";
NSString *remoteFilename = @"hamlet.xml";
// Ensure that we get PercentDone callbacks.
ftp.AutoGetSizeForProgress = YES;
// Download the file.
success = [ftp GetFile: remoteFilename localPath: localFilename];
if (success != YES) {
NSLog(@"%@",ftp.LastErrorText);
return;
}
success = [ftp Disconnect];
NSLog(@"%@",@"File Downloaded!");