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
(Tcl) 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.
load ./chilkat.dll # This example requires the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. set ftp [new_CkFtp2] CkFtp2_put_Hostname $ftp "ftp.example.com" CkFtp2_put_Username $ftp "myUsername" CkFtp2_put_Password $ftp "myPassword" CkFtp2_put_Port $ftp 21 CkFtp2_put_AuthTls $ftp 1 # Connect and login to the FTP server. set success [CkFtp2_Connect $ftp] if {$success != 1} then { puts [CkFtp2_lastErrorText $ftp] delete_CkFtp2 $ftp exit } # 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. set success [CkFtp2_ChangeRemoteDir $ftp "qa"] if {$success != 1} then { puts [CkFtp2_lastErrorText $ftp] delete_CkFtp2 $ftp exit } # Indicate that we only want to download files with filenames ending in ".txt" CkFtp2_put_SyncMustMatch $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. set mode 1 # Download all files matching "*.txt" from the current remote ftp directory. # The files are downloaded into c:/temp/qa_output set success [CkFtp2_SyncLocalDir $ftp "c:/temp/qa_output" $mode] if {$success != 1} then { puts [CkFtp2_lastErrorText $ftp] delete_CkFtp2 $ftp exit } # We can see what files were downloaded in the SyncedFiles property, # which lists the files one per line. puts [CkFtp2_syncedFiles $ftp] # Perhaps we wish to delete the files we just downloaded from the server.. set sb [new_CkStringBuilder] CkStringBuilder_Append $sb [CkFtp2_syncedFiles $ftp] set st [new_CkStringTable] CkStringTable_AppendFromSb $st $sb set numFiles [CkStringTable_get_Count $st] set i 0 while {$i < $numFiles} { set remoteFilename [CkStringTable_stringAt $st $i] puts "Deleting $remoteFilename from the FTP server" set success [CkFtp2_DeleteRemoteFile $ftp $remoteFilename] if {$success != 1} then { puts [CkFtp2_lastErrorText $ftp] delete_CkFtp2 $ftp delete_CkStringBuilder $sb delete_CkStringTable $st exit } set i [expr $i + 1] } set success [CkFtp2_Disconnect $ftp] delete_CkFtp2 $ftp delete_CkStringBuilder $sb delete_CkStringTable $st |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.