|  | 
Chilkat  HOME  Android™  AutoIt  C  C#  C++  Chilkat2-Python  CkPython  Classic ASP  DataFlex  Delphi DLL  Go  Java  Node.js  Objective-C  PHP Extension  Perl  PowerBuilder  PowerShell  PureBasic  Ruby  SQL Server  Swift  Tcl  Unicode C  Unicode C++  VB.NET  VBScript  Visual Basic 6.0  Visual FoxPro  Xojo Plugin
| (Swift) SCP Sync Tree UploadSynchronize local and remote directory trees by uploading newer or missing files to the remote server. 
 func chilkatTest() { // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. let ssh = CkoSsh()! // Hostname may be an IP address or hostname: var hostname: String? = "www.some-ssh-server.com" var port: Int = 22 // Connect to an SSH server: var success: Bool = ssh.connect(hostname, port: port) if success != true { print("\(ssh.lastErrorText!)") return } // Wait a max of 5 seconds when reading responses.. ssh.idleTimeoutMs = 5000 // Authenticate using login/password: success = ssh.authenticatePw("myLogin", password: "myPassword") if success != true { print("\(ssh.lastErrorText!)") return } // Once the SSH object is connected and authenticated, we use it // in our SCP object. let scp = CkoScp()! success = scp.use(ssh) if success != true { print("\(scp.lastErrorText!)") return } // The remoteRoot is relative to the HOME directory of the SSH user account. var remoteRoot: String? = "workspace/projectB" var localRoot: String? = "c:/aaworkarea/scp/workspace/projectB" // Upload synchronization modes: // mode=0: Upload all files // mode=1: Upload all files that do not exist on the FTP server. // mode=2: Upload newer or non-existant files. // mode=3: Upload only newer files. If a file does not already exist on the FTP server, it is not uploaded. // mode=4: transfer missing files or files with size differences. // mode=5: same as mode 4, but also newer files. // Additional files and directores can be excluded by setting the SyncMustNotMatch property. // The SyncMustNotMatch patterns apply only to the final filename or directory part of a path. // If a directory matches, then it will not be traversed in a recursive traversal. // scp.syncMustNotMatch = "*.o;*.obj;*.log; temp" // The SyncMustMatch property can be set to restrict the files uploaded to only those // matching at least one pattern in a set. scp.syncMustMatch = "*.cpp; *.h" // Do the recursive sync to upload newer or non-existant files: var bRecurse: Bool = true var mode: Int = 2 success = scp.syncTreeUpload(localRoot, remoteBaseDir: remoteRoot, mode: mode, bRecurse: bRecurse) if success != true { print("\(scp.lastErrorText!)") return } // The files actually uploaded can be examined in the SyncedFiles property. // It is a string property that contains the relative path, one per line, of each // file uploaded. print("Files uploaded: ") print("\(scp.syncedFiles!)") print("----") print("SCP sync upload success.") // Disconnect ssh.disconnect() } | ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.