Sample code for 30+ languages & platforms
Xbase++

SFTP Download all Files in a Directory

See more SFTP Examples

Demonstrates how to download all files in a remote directory. This example uses the SyncTreeDownload method in a non-recursive mode that forces the download of all files, regardless of date/time or size differences.

Chilkat Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oSftp
LOCAL cRemoteDir
LOCAL cLocalDir
LOCAL nMode
LOCAL nRecursive

nSuccess := 0

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

oSftp := CreateObject("Chilkat.SFtp")

nSuccess := oSftp:Connect("my-ssh-server.com", 22)
IF (nSuccess == 1)
    nSuccess := oSftp:AuthenticatePw("mySshLogin", "mySshPassword")
ENDIF

IF (nSuccess == 1)
    nSuccess := oSftp:InitializeSftp()
ENDIF

IF (nSuccess != 1)
    ? oSftp:LastErrorText
    oSftp:destroy()
    RETURN
ENDIF

//  Download all the files from the remote directory "syncDownloadTest/xml"
//  into our local directory "qa_output"
//  Both directories are relative paths.  The remote directory
//  is relative to the HOME directory of the SSH user account.
//  The local directory is relative to the current working directory of the process.
//  It is also possible to use absolute paths.

cRemoteDir := "syncDownloadTest/xml"
cLocalDir := "qa_output"
//  Mode 0 causes SyncTreeDownload to download all files.
nMode := 0
//  Do not recursively descend the remote directory tree.  Just download all the files in specified directory.
nRecursive := 0
nSuccess := oSftp:SyncTreeDownload(cRemoteDir, cLocalDir, nMode, nRecursive)
IF (nSuccess != 1)
    ? oSftp:LastErrorText
    oSftp:destroy()
    RETURN
ENDIF

? "Success."

oSftp:destroy()