Sample code for 30+ languages & platforms
Objective-C

CRLF Mode

See more FTP Examples

The CrlfMode property applies when downloading files in ASCII mode. If CrlfMode is set to 0 (the default), then the ASCII transfer happens normally without alteration. A value of 1 converts all line endings to CR+ LF. A value of 2 converts all line endings to LF-only. A value of 3 converts all line endings to CR-only.

Chilkat Objective-C Downloads

Objective-C
#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];

ftp.Hostname = @"ftp.chilkatsoft.com";
ftp.Username = @"MyLogin";
ftp.Password = @"MyPassword";

// Connect and login to the FTP server.
success = [ftp Connect];
if (success != YES) {
    NSLog(@"%@",ftp.LastErrorText);
    return;
}

// Set the transfer mode to ASCII
success = [ftp SetTypeAscii];
if (success != YES) {
    NSLog(@"%@",ftp.LastErrorText);
    return;
}

// Set the CrlfMode to ensure that line endings are CR+LF:
ftp.CrlfMode = [NSNumber numberWithInt:1];

// CrlfMode line ending settings:
// 0 = do ASCII transfer without alteration.
// 1 = CR+LF
// 2 = LF-only
// 3 = CR-only

// Change to the remote directory where the file will be uploaded.
success = [ftp ChangeRemoteDir: @"junk"];
if (success != YES) {
    NSLog(@"%@",ftp.LastErrorText);
    return;
}

NSString *localFilename = @"hamlet.xml";
NSString *remoteFilename = @"hamlet.xml";

// Turn on session logging for the upload:
ftp.KeepSessionLog = YES;

// Download a file.
success = [ftp GetFile: remoteFilename localPath: localFilename];
if (success != YES) {
    NSLog(@"%@",ftp.LastErrorText);
    return;
}

// View the session log.  You can verify visually that
// the transfer was in ascii mode.
NSLog(@"%@",ftp.SessionLog);

success = [ftp Disconnect];

NSLog(@"%@",@"File Downloaded!");