Sample code for 30+ languages & platforms
Lianja

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

Lianja
llSuccess = .F.

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

loFtp = createobject("CkFtp2")

loFtp.Hostname = "ftp.example.com"
loFtp.Username = "my_login"
loFtp.Password = "my_password"
loFtp.Port = 21
loFtp.AuthTls = .T.

llSuccess = loFtp.Connect()
if (llSuccess <> .T.) then
    ? loFtp.LastErrorText
    release loFtp
    return
endif

// Change to the "images" sub-directory located under our FTP account's home directory.
llSuccess = loFtp.ChangeRemoteDir("images")
if (llSuccess <> .T.) then
    ? loFtp.LastErrorText
    release loFtp
    return
endif

loFtp.ListPattern = "*.png"

// Fetch the current remote directory contents by calling GetDirCount
n = loFtp.GetDirCount()
if (n < 0) then
    ? loFtp.LastErrorText
    release loFtp
    return
endif

i = 0

loSbLocalPath = createobject("CkStringBuilder")

do while i < n
    lcFilename = loFtp.GetFilename(i)
    ? lcFilename

    // Download this file.
    loSbLocalPath.SetString("qa_output/")
    loSbLocalPath.Append(lcFilename)
    llSuccess = loFtp.GetFile(lcFilename,loSbLocalPath.GetAsString())
    if (llSuccess <> .T.) then
        ? loFtp.LastErrorText
        release loFtp
        release loSbLocalPath
        return
    endif

    i = i + 1
enddo


release loFtp
release loSbLocalPath