DataFlex
DataFlex
SFTP SyncTreeDownload - Find out what files were downloaded
See more SFTP Examples
Demonstrates how to find out which files were downloaded in a SyncTreeDownload method call.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoSftp
String sRemoteDir
String sLocalDir
Integer iMode
Boolean iRecursive
Variant vSt
Handle hoSt
Integer iNumFiles
Integer i
String sRemoteFilename
String sTemp1
Move False To iSuccess
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
Get Create (RefClass(cComChilkatSFtp)) To hoSftp
If (Not(IsComObjectCreated(hoSftp))) Begin
Send CreateComObject of hoSftp
End
Get ComConnect Of hoSftp "my-ssh-server.com" 22 To iSuccess
If (iSuccess = True) Begin
Get ComAuthenticatePw Of hoSftp "mySshLogin" "mySshPassword" To iSuccess
End
If (iSuccess = True) Begin
Get ComInitializeSftp Of hoSftp To iSuccess
End
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoSftp To sTemp1
Showln sTemp1
Procedure_Return
End
// Synchronize the remote directory tree rooted at "syncDownloadTest/xml"
// with the local directory tree rooted at "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.
Move "syncDownloadTest" To sRemoteDir
Move "qa_output" To sLocalDir
// Possible modes that can be passed to the SyncTreeDownload method are:
// mode=0: Download all files
// mode=1: Download all files that do not exist on the local filesystem.
// mode=2: Download newer or non-existant files.
// mode=3: Download only newer files. If a file does not already exist on the local filesystem, it is not downloaded from the server.
// mode=5: Download only missing files or files with size differences.
// mode=6: Same as mode 5, but also download newer files.
// mode=99: Do not download files, but instead delete remote files that do not exist locally.
// This example will use mode 6 to download missing, newer, or files with size differences.
Move 6 To iMode
// This example will turn on recursion to synchronize the entire tree.
// Recursion can be turned off to synchronize the files of a single directory.
Move True To iRecursive
Get ComSyncTreeDownload Of hoSftp sRemoteDir sLocalDir iMode iRecursive To iSuccess
If (iSuccess <> True) Begin
Get ComLastErrorText Of hoSftp To sTemp1
Showln sTemp1
Procedure_Return
End
// Examine the list of downloaded files.
Get Create (RefClass(cComChilkatStringTable)) To hoSt
If (Not(IsComObjectCreated(hoSt))) Begin
Send CreateComObject of hoSt
End
Get pvComObject of hoSt to vSt
Send ComGetSyncedFiles To hoSftp vSt
Get ComCount Of hoSt To iNumFiles
Move 0 To i
While (i < iNumFiles)
Get ComStringAt Of hoSt i To sTemp1
Showln sTemp1
Move (i + 1) To i
Loop
// For example:
// data/
// chiliPepper.gif
// helloWorld.pdf
// alice.key
// anter_cert.pem
// text/
// accentedLatin1.txt
// accentedUtf8.txt
// abc/
// abc/chiliPepper.gif
// abc/ghk/
// text/something/
// text/PolishEmailBody.txt
// text/frenchUtf8.txt
// text/helloWorld.txt
// data/chiliPepper.gif
// data/xyz/
// data/xyz/dkimHtmlBody.txt
// data/xyz/emailForCreateDsn.eml
// data/xyz/dkimVerifyTest.eml
Showln "Success."
End_Procedure