Objective-C
Objective-C
Co:Z SFTP Binary File Download (from z/OS IBM Mainframe)
See more SFTP Examples
Demonstrates how to download a binary file, such as a .zip, from a Co:Z SFTP server on a z/OS IBM Mainframe.Chilkat Objective-C Downloads
#import <CkoSFtp.h>
#import <NSString.h>
#import <CkoSFtpDir.h>
BOOL success = NO;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
CkoSFtp *sftp = [[CkoSFtp alloc] init];
// Connect to the SSH server.
NSString *hostname = @"sftp.example.com";
int port = 22;
success = [sftp Connect: hostname port: [NSNumber numberWithInt: port]];
if (success == NO) {
NSLog(@"%@",sftp.LastErrorText);
return;
}
success = [sftp AuthenticatePw: @"myLogin" password: @"myPassword"];
if (success == NO) {
NSLog(@"%@",sftp.LastErrorText);
return;
}
success = [sftp InitializeSftp];
if (success == NO) {
NSLog(@"%@",sftp.LastErrorText);
return;
}
// To download a binary file from the Co:Z SFTP server,
// we must switch to binary mode in the following unconventional way.
// We pretend to fetch a directory listing for "/+mode=binary"
// This has the effect of putting the server in binary mode for transfers.
NSString *handle = [sftp OpenDir: @"/+mode=binary"];
if (sftp.LastMethodSuccess == NO) {
NSLog(@"%@",sftp.LastErrorText);
return;
}
// Download the "directory listing" (but it's not actually a directory listing, and we'll just discard it.)
CkoSFtpDir *dirListing = [[CkoSFtpDir alloc] init];
success = [sftp ReadDirListing: handle dirObj: dirListing];
if (success == NO) {
NSLog(@"%@",sftp.LastErrorText);
return;
}
// Close the directory handle:
success = [sftp CloseHandle: handle];
if (success == NO) {
NSLog(@"%@",sftp.LastErrorText);
return;
}
// Download the binary file:
NSString *localFilePath = @"c:/temp/test.zip";
NSString *remoteFilePath = @"test.zip";
success = [sftp DownloadFileByName: remoteFilePath localFilePath: localFilePath];
if (success == NO) {
NSLog(@"%@",sftp.LastErrorText);
return;
}
NSLog(@"%@",@"Success.");