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
(Android™) SFTP Synchronize Tree Upload with ProgressInfo CallbacksDemonstrates an SFTP synchronization tree upload (local files to SFTP server), with progress info callbacks to monitor each file uploaded.
// Important: Don't forget to include the call to System.loadLibrary // as shown at the bottom of this code sample. package com.test; import android.app.Activity; import com.chilkatsoft.*; import android.widget.TextView; import android.os.Bundle; public class sftpProgress extends CkSFtpProgress { public void ProgressInfo(String name, String value) { Log.i(TAG, "ProgressInfo: " + name + ", " + value); CkStringBuilder sbName = new CkStringBuilder(); sbName.Append(name); if (sbName.ContentsEqual("syncUploadFile") == true) { CkXml xml = new CkXml(); xml.LoadXml(value); String file_localPath = xml.getAttrValue("localPath"); String file_remotePath = xml.getAttrValue("remotePath"); } return; } }; public class SimpleActivity extends Activity { private static final String TAG = "Chilkat"; // Called when the activity is first created. @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. CkSFtp sftp = new CkSFtp(); sftpProgress sftp_progress = new sftpProgress(); sftp.put_EventCallbackObject(sftp_progress); boolean success = sftp.Connect("my-ssh-server.com",22); if (success == true) { success = sftp.AuthenticatePw("mySshLogin","mySshPassword"); } if (success == true) { success = sftp.InitializeSftp(); } if (success != true) { Log.i(TAG, sftp.lastErrorText()); return; } // Synchronize (by uploading) the local directory tree rooted at "c:/ckAssets/qa_data/syncRemote2/" // with the remote directory tree rooted at "qa/syncRemote2" // The remote directory // is relative to the HOME directory of the SSH user account. // The local directory is an absolute path (but could be a relative path if desired) String remoteDir = "qa/syncRemote2"; String localDir = "c:/ckAssets/qa_data/syncRemote2/"; // Possible modes that can be passed to the SyncTreeUpload method are: // mode=0: Upload all files // mode=1: Upload all files that do not exist on the server. // mode=2: Upload newer or non-existant files. // mode=3: Upload only newer files. If a file does not already exist on the 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. // Because we want to see the ProgressInfo callbacks, upload all files.. int mode = 0; // This example turns on recursion to synchronize the entire tree. // Recursion can be turned off to synchronize the files of a single directory. boolean recursive = true; success = sftp.SyncTreeUpload(localDir,remoteDir,mode,recursive); if (success != true) { Log.i(TAG, sftp.lastErrorText()); return; } Log.i(TAG, "Success."); // Here is sample output of the above code showing the ProgressInfo values. // If the name is "syncUploadFile", then the value is a snippet of XML containing the local file path and the remote file path of the file // being uploaded. // ProgressInfo: syncUploadFile, <file localPath="c:\ckAssets\qa_data\syncRemote2\accentedLatin1.txt" remotePath="qa/syncRemote2/accentedLatin1.txt" /> // ProgressInfo: SendByteCount, 52 // ProgressInfo: SendBytesPerSec, 52000 // ProgressInfo: syncUploadFile, <file localPath="c:\ckAssets\qa_data\syncRemote2\accentedUtf8.txt" remotePath="qa/syncRemote2/accentedUtf8.txt" /> // ProgressInfo: SendByteCount, 226 // ProgressInfo: SendBytesPerSec, 226000 // ProgressInfo: syncUploadFile, <file localPath="c:\ckAssets\qa_data\syncRemote2\anter_cert.pem" remotePath="qa/syncRemote2/anter_cert.pem" /> // ProgressInfo: SendByteCount, 2165 // ProgressInfo: SendBytesPerSec, 2165000 // ProgressInfo: syncUploadFile, <file localPath="c:\ckAssets\qa_data\syncRemote2\mv.exe" remotePath="qa/syncRemote2/mv.exe" /> // ProgressInfo: SendByteCount, 9922165 // ProgressInfo: SendBytesPerSec, 24438830 // ProgressInfo: SendByteCount, 20898165 // ProgressInfo: SendBytesPerSec, 25705000 // ProgressInfo: SendByteCount, 31554165 // ProgressInfo: SendBytesPerSec, 25885287 // ProgressInfo: SendByteCount, 42242165 // ProgressInfo: SendBytesPerSec, 25995178 // ProgressInfo: SendByteCount, 48066165 // ProgressInfo: SendBytesPerSec, 23666255 // ProgressInfo: SendByteCount, 50821629 // ProgressInfo: SendBytesPerSec, 23916060 // ProgressInfo: syncUploadFile, <file localPath="c:\ckAssets\qa_data\syncRemote2\abc\chiliPepper.gif" remotePath="qa/syncRemote2/abc/chiliPepper.gif" /> // ProgressInfo: SendByteCount, 50829347 // ProgressInfo: SendBytesPerSec, 23919692 // ProgressInfo: syncUploadFile, <file localPath="c:\ckAssets\qa_data\syncRemote2\data\chiliPepper.gif" remotePath="qa/syncRemote2/data/chiliPepper.gif" /> // ProgressInfo: SendByteCount, 50837065 // ProgressInfo: SendBytesPerSec, 23923324 // ProgressInfo: syncUploadFile, <file localPath="c:\ckAssets\qa_data\syncRemote2\data\xyz\dkimHtmlBody.txt" remotePath="qa/syncRemote2/data/xyz/dkimHtmlBody.txt" /> // ProgressInfo: SendByteCount, 50837250 // ProgressInfo: SendBytesPerSec, 23923411 // ProgressInfo: syncUploadFile, <file localPath="c:\ckAssets\qa_data\syncRemote2\data\xyz\dkimVerifyTest.eml" remotePath="qa/syncRemote2/data/xyz/dkimVerifyTest.eml" /> // ProgressInfo: SendByteCount, 50840884 // ProgressInfo: SendBytesPerSec, 23925121 // ProgressInfo: syncUploadFile, <file localPath="c:\ckAssets\qa_data\syncRemote2\data\xyz\emailForCreateDsn.eml" remotePath="qa/syncRemote2/data/xyz/emailForCreateDsn.eml" /> // ProgressInfo: SendByteCount, 50845086 // ProgressInfo: SendBytesPerSec, 23927099 } static { System.loadLibrary("chilkat"); // Note: If the incorrect library name is passed to System.loadLibrary, // then you will see the following error message at application startup: //"The application <your-application-name> has stopped unexpectedly. Please try again." } } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.