DataFlex
DataFlex
SFTP Sync Download Tree w/ Must-Match Directory Constraints
See more SFTP Examples
Demonstrates how SFTP synchronize a directory tree in the download direction, but only entering directories matching a set of wildcard filenames.Note: This example requires Chilkat v9.5.0.76 or greater.
Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoSftp
String sRemoteDir
String sLocalDir
Integer iMode
Boolean iRecursive
String sTemp1
Move False To iSuccess
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
// Possible synchronization modes 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.
// Only enter remote directories named either "data" or matching "x*"
Set ComSyncMustMatchDir Of hoSftp To "data; x*"
// Imagine our remote directory tree has these files and directories:
// accentedLatin1.txt
// accentedUtf8.txt
// alice.key
// anter_cert.pem
// chiliPepper.gif
// helloWorld.pdf
// abc/chiliPepper.gif
// abc/ghk/
// data/chiliPepper.gif
// data/xyz/dkimHtmlBody.txt
// data/xyz/dkimVerifyTest.eml
// data/xyz/emailForCreateDsn.eml
// text/frenchUtf8.txt
// text/helloWorld.txt
// text/PolishEmailBody.txt
// text/something/
Move "syncDownloadTest/someDir" To sRemoteDir
Move "qa_output" To sLocalDir
Move 0 To iMode
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
// The following files were downloaded:
// accentedLatin1.txt
// accentedUtf8.txt
// alice.key
// anter_cert.pem
// chiliPepper.gif
// helloWorld.pdf
// data/chiliPepper.gif
// data/xyz/dkimHtmlBody.txt
// data/xyz/dkimVerifyTest.eml
// data/xyz/emailForCreateDsn.eml
Showln "Success."
End_Procedure