Sample code for 30+ languages & platforms
Visual FoxPro

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 Visual FoxPro Downloads

Visual FoxPro
LOCAL lnSuccess
LOCAL loFtp
LOCAL n
LOCAL i
LOCAL lcFilename
LOCAL loSbLocalPath

lnSuccess = 0

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

loFtp = CreateObject('Chilkat.Ftp2')

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

lnSuccess = loFtp.Connect()
IF (lnSuccess <> 1) THEN
    ? loFtp.LastErrorText
    RELEASE loFtp
    CANCEL
ENDIF

* Change to the "images" sub-directory located under our FTP account's home directory.
lnSuccess = loFtp.ChangeRemoteDir("images")
IF (lnSuccess <> 1) THEN
    ? loFtp.LastErrorText
    RELEASE loFtp
    CANCEL
ENDIF

loFtp.ListPattern = "*.png"

* Fetch the current remote directory contents by calling GetDirCount
n = loFtp.GetDirCount()
IF (n < 0) THEN
    ? loFtp.LastErrorText
    RELEASE loFtp
    CANCEL
ENDIF

i = 0

loSbLocalPath = CreateObject('Chilkat.StringBuilder')

DO WHILE i < n
    lcFilename = loFtp.GetFilename(i)
    ? lcFilename

    * Download this file.
    loSbLocalPath.SetString("qa_output/")
    loSbLocalPath.Append(lcFilename)
    lnSuccess = loFtp.GetFile(lcFilename,loSbLocalPath.GetAsString())
    IF (lnSuccess <> 1) THEN
        ? loFtp.LastErrorText
        RELEASE loFtp
        RELEASE loSbLocalPath
        CANCEL
    ENDIF

    i = i + 1
ENDDO

RELEASE loFtp
RELEASE loSbLocalPath