Sample code for 30+ languages & platforms
PureBasic

SFTP Download Files Matching a Pattern

See more SFTP Examples

Demonstrates how to download files in a directory matching one or more patterns (such as "*.zip" or "abc*_*0719.csv".

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkSFtp.pb"

Procedure ChilkatExample()

    success.i = 0

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

    sftp.i = CkSFtp::ckCreate()
    If sftp.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkSFtp::ckConnect(sftp,"my-ssh-server.com",22)
    If success = 1
        success = CkSFtp::ckAuthenticatePw(sftp,"mySshLogin","mySshPassword")
    EndIf

    If success = 1
        success = CkSFtp::ckInitializeSftp(sftp)
    EndIf

    If success <> 1
        Debug CkSFtp::ckLastErrorText(sftp)
        CkSFtp::ckDispose(sftp)
        ProcedureReturn
    EndIf

    ; The SyncTreeDownload method can be used non-recursively to download all files matching a set of patterns.

    ; This example will download all files, but only those files having filenames
    ; that match *.csv and *.eml
    CkSFtp::setCkSyncMustMatch(sftp, "*.eml; *.gif")

    remoteDir.s = "syncDownloadTest/someDir"
    localDir.s = "qa_output"

    ; mode=0: Download all matching files according to SyncMustMatch
    mode.i = 0

    ; do not recursively traverse the remote directory tree.
    recursive.i = 0

    success = CkSFtp::ckSyncTreeDownload(sftp,remoteDir,localDir,mode,recursive)
    If success <> 1
        Debug CkSFtp::ckLastErrorText(sftp)
        CkSFtp::ckDispose(sftp)
        ProcedureReturn
    EndIf

    Debug "Success."


    CkSFtp::ckDispose(sftp)


    ProcedureReturn
EndProcedure