Sample code for 30+ languages & platforms
Swift

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 Swift Downloads

Swift

func chilkatTest() {
    var success: Bool = false

    // This example requires the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    let ftp = CkoFtp2()!

    ftp.hostname = "ftp.example.com"
    ftp.username = "my_login"
    ftp.password = "my_password"
    ftp.port = 21
    ftp.authTls = true

    success = ftp.connect()
    if success != true {
        print("\(ftp.lastErrorText!)")
        return
    }

    // Change to the "images" sub-directory located under our FTP account's home directory.
    success = ftp.changeRemoteDir(relativeDirPath: "images")
    if success != true {
        print("\(ftp.lastErrorText!)")
        return
    }

    ftp.listPattern = "*.png"

    // Fetch the current remote directory contents by calling GetDirCount
    var n: Int = ftp.getDirCount().intValue
    if n < 0 {
        print("\(ftp.lastErrorText!)")
        return
    }

    var i: Int = 0
    var filename: String?
    let sbLocalPath = CkoStringBuilder()!

    while i < n {
        filename = ftp.getFilename(index: i)
        print("\(filename!)")

        // Download this file.
        sbLocalPath.setString(value: "qa_output/")
        sbLocalPath.append(value: filename)
        success = ftp.getFile(remoteFilename: filename, localPath: sbLocalPath.getAsString())
        if success != true {
            print("\(ftp.lastErrorText!)")
            return
        }

        i = i + 1
    }


}