Sample code for 30+ languages & platforms
Objective-C

FTP Iterate over Files in Directory Matching ListPattern

See more RSA Examples

Uses the ListPattern property to iterate over the files in a directory matching the pattern.

Chilkat Objective-C Downloads

Objective-C
#import <CkoFtp2.h>
#import <NSString.h>
#import <CkoStringBuilder.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];

ftp.Hostname = @"ftp.example.com";
ftp.Username = @"my_login";
ftp.Password = @"my_password";
ftp.Port = [NSNumber numberWithInt:21];
ftp.AuthTls = YES;

success = [ftp Connect];
if (success != YES) {
    NSLog(@"%@",ftp.LastErrorText);
    return;
}

// Change to the "images" sub-directory located under our FTP account's home directory.
success = [ftp ChangeRemoteDir: @"images"];
if (success != YES) {
    NSLog(@"%@",ftp.LastErrorText);
    return;
}

ftp.ListPattern = @"*.png";

// Fetch the current remote directory contents by calling GetDirCount
int n = [[ftp GetDirCount] intValue];
if (n < 0) {
    NSLog(@"%@",ftp.LastErrorText);
    return;
}

int i = 0;
NSString *filename = 0;
CkoStringBuilder *sbLocalPath = [[CkoStringBuilder alloc] init];

while (i < n) {
    filename = [ftp GetFilename: [NSNumber numberWithInt: i]];
    NSLog(@"%@",filename);

    // Download this file.
    [sbLocalPath SetString: @"qa_output/"];
    [sbLocalPath Append: filename];
    success = [ftp GetFile: filename localPath: [sbLocalPath GetAsString]];
    if (success != YES) {
        NSLog(@"%@",ftp.LastErrorText);
        return;
    }

    i = i + 1;
}