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
(PureBasic) FTP Non-Recursive Sync Directory (Download)See more FTP ExamplesDownload files from the server that have filenames matchhing a pattern, and don't yet exist in a local directory.
IncludeFile "CkFtp2.pb" IncludeFile "CkStringTable.pb" IncludeFile "CkStringBuilder.pb" Procedure ChilkatExample() ; This example requires the Chilkat API to have been previously unlocked. ; See Global Unlock Sample for sample code. ftp.i = CkFtp2::ckCreate() If ftp.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkFtp2::setCkHostname(ftp, "ftp.example.com") CkFtp2::setCkUsername(ftp, "myUsername") CkFtp2::setCkPassword(ftp, "myPassword") CkFtp2::setCkPort(ftp, 21) CkFtp2::setCkAuthTls(ftp, 1) ; Connect and login to the FTP server. success.i = CkFtp2::ckConnect(ftp) If success <> 1 Debug CkFtp2::ckLastErrorText(ftp) CkFtp2::ckDispose(ftp) ProcedureReturn EndIf ; Change to the remote directory where the files are located. ; This step is only necessary if the files are not in the root directory ; of the FTP account. success = CkFtp2::ckChangeRemoteDir(ftp,"qa") If success <> 1 Debug CkFtp2::ckLastErrorText(ftp) CkFtp2::ckDispose(ftp) ProcedureReturn EndIf ; Indicate that we only want to download files with filenames ending in ".txt" CkFtp2::setCkSyncMustMatch(ftp, "*.txt") ; Modes for synchronization are as follows: ; 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. mode.i = 1 ; Download all files matching "*.txt" from the current remote ftp directory. ; The files are downloaded into c:/temp/qa_output success = CkFtp2::ckSyncLocalDir(ftp,"c:/temp/qa_output",mode) If success <> 1 Debug CkFtp2::ckLastErrorText(ftp) CkFtp2::ckDispose(ftp) ProcedureReturn EndIf ; We can see what files were downloaded in the SyncedFiles property, ; which lists the files one per line. Debug CkFtp2::ckSyncedFiles(ftp) ; Perhaps we wish to delete the files we just downloaded from the server.. sb.i = CkStringBuilder::ckCreate() If sb.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkStringBuilder::ckAppend(sb,CkFtp2::ckSyncedFiles(ftp)) st.i = CkStringTable::ckCreate() If st.i = 0 Debug "Failed to create object." ProcedureReturn EndIf CkStringTable::ckAppendFromSb(st,sb) numFiles.i = CkStringTable::ckCount(st) i.i = 0 remoteFilename.s While i < numFiles remoteFilename = CkStringTable::ckStringAt(st,i) Debug "Deleting " + remoteFilename + " from the FTP server" success = CkFtp2::ckDeleteRemoteFile(ftp,remoteFilename) If success <> 1 Debug CkFtp2::ckLastErrorText(ftp) CkFtp2::ckDispose(ftp) CkStringBuilder::ckDispose(sb) CkStringTable::ckDispose(st) ProcedureReturn EndIf i = i + 1 Wend success = CkFtp2::ckDisconnect(ftp) CkFtp2::ckDispose(ftp) CkStringBuilder::ckDispose(sb) CkStringTable::ckDispose(st) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.