Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Visual FoxPro) SFTP SyncTreeDownload - Find out what files were downloadedSee more SFTP ExamplesDemonstrates how to find out which files were downloaded in a SyncTreeDownload method call.
LOCAL loSftp LOCAL lnSuccess LOCAL lcRemoteDir LOCAL lcLocalDir LOCAL lnMode LOCAL lnRecursive LOCAL lcFileList LOCAL loSb LOCAL loSt LOCAL i * This example requires the Chilkat API to have been previously unlocked. * See Global Unlock Sample for sample code. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.SFtp') loSftp = CreateObject('Chilkat.SFtp') lnSuccess = loSftp.Connect("my-ssh-server.com",22) IF (lnSuccess = 1) THEN lnSuccess = loSftp.AuthenticatePw("mySshLogin","mySshPassword") ENDIF IF (lnSuccess = 1) THEN lnSuccess = loSftp.InitializeSftp() ENDIF IF (lnSuccess <> 1) THEN ? loSftp.LastErrorText RELEASE loSftp CANCEL ENDIF * 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. lcRemoteDir = "syncDownloadTest" lcLocalDir = "qa_output" * 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. lnMode = 6 * This example will turn on recursion to synchronize the entire tree. * Recursion can be turned off to synchronize the files of a single directory. lnRecursive = 1 lnSuccess = loSftp.SyncTreeDownload(lcRemoteDir,lcLocalDir,lnMode,lnRecursive) IF (lnSuccess <> 1) THEN ? loSftp.LastErrorText RELEASE loSftp CANCEL ENDIF * Examine the list of downloaded files. * The downloaded files are listed one per line in the SyncedFiles property. * Local directories that were created will be listed with a trailing "/" char. lcFileList = loSftp.SyncedFiles ? lcFileList ? "" * 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 * You could load the strings into a Chilkat string table.. * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.StringBuilder') loSb = CreateObject('Chilkat.StringBuilder') loSb.Append(lcFileList) * For versions of Chilkat < 10.0.0, use CreateObject('Chilkat_9_5_0.StringTable') loSt = CreateObject('Chilkat.StringTable') loSt.AppendFromSb(loSb) * Find out how many files + dirs ? "Total count = " + STR(loSt.Count) i = 0 DO WHILE i < loSt.Count ? loSt.StringAt(i) i = i + 1 ENDDO ? "Success." RELEASE loSftp RELEASE loSb RELEASE loSt |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.