Differences
This shows you the differences between the selected revisions of the page.
| 2013-10-08 | 2013-10-08 | ||
| no summary (83.160.137.23) (hidden) | Restored revision 1379931052. Undoing revisions 1381241069, 1381241152, 1381241584. (martin) (hidden) | ||
| Line 50: | Line 50: | ||
| Event ''[[library_session_filetransferred|Session.FileTransferred]]'' is raised for every uploaded or downloaded file. | Event ''[[library_session_filetransferred|Session.FileTransferred]]'' is raised for every uploaded or downloaded file. | ||
| + | ===== [[example]] Examples ===== | ||
| + | ==== [[csharp]] C# Example ==== | ||
| + | <code csharp> | ||
| + | using System; | ||
| + | using WinSCP; | ||
| + | class Example | ||
| + | { | ||
| + | public static int Main() | ||
| + | { | ||
| + | try | ||
| + | { | ||
| + | // Setup session options | ||
| + | SessionOptions sessionOptions = new SessionOptions { | ||
| + | Protocol = Protocol.Sftp, | ||
| + | HostName = "example.com", | ||
| + | UserName = "user", | ||
| + | Password = "mypassword", | ||
| + | SshHostKeyFingerprint = "ssh-rsa 1024 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx" | ||
| + | }; | ||
| + | |||
| + | using (Session session = new Session()) | ||
| + | { | ||
| + | // Will continuously report progress of synchronization | ||
| + | session.FileTransferred += FileTransferred; | ||
| + | |||
| + | // Connect | ||
| + | session.Open(sessionOptions); | ||
| + | |||
| + | // Synchronize files | ||
| + | SynchronizationResult synchronizationResult; | ||
| + | synchronizationResult = | ||
| + | session.SynchronizeDirectories( | ||
| + | SynchronizationMode.Remote, @"d:\www", "/home/martin/public_html", false); | ||
| + | |||
| + | // Throw on any error | ||
| + | synchronizationResult.Check(); | ||
| + | } | ||
| + | |||
| + | return 0; | ||
| + | } | ||
| + | catch (Exception e) | ||
| + | { | ||
| + | Console.WriteLine("Error: {0}", e); | ||
| + | return 1; | ||
| + | } | ||
| + | } | ||
| + | |||
| + | private static void FileTransferred(object sender, TransferEventArgs e) | ||
| + | { | ||
| + | if (e.Error == null) | ||
| + | { | ||
| + | Console.WriteLine("Upload of {0} succeeded", e.FileName); | ||
| + | } | ||
| + | else | ||
| + | { | ||
| + | Console.WriteLine("Upload of {0} failed: {1}", e.FileName, e.Error); | ||
| + | } | ||
| + | |||
| + | if (e.Chmod != null) | ||
| + | { | ||
| + | if (e.Chmod.Error == null) | ||
| + | { | ||
| + | Console.WriteLine("Permisions of {0} set to {1}", e.Chmod.FileName, e.Chmod.FilePermissions); | ||
| + | } | ||
| + | else | ||
| + | { | ||
| + | Console.WriteLine("Setting permissions of {0} failed: {1}", e.Chmod.FileName, e.Chmod.Error); | ||
| + | } | ||
| + | } | ||
| + | else | ||
| + | { | ||
| + | Console.WriteLine("Permissions of {0} kept with their defaults", e.Destination); | ||
| + | } | ||
| + | |||
| + | if (e.Touch != null) | ||
| + | { | ||
| + | if (e.Touch.Error == null) | ||
| + | { | ||
| + | Console.WriteLine("Timestamp of {0} set to {1}", e.Touch.FileName, e.Touch.LastWriteTime); | ||
| + | } | ||
| + | else | ||
| + | { | ||
| + | Console.WriteLine("Setting timestamp of {0} failed: {1}", e.Touch.FileName, e.Touch.Error); | ||
| + | } | ||
| + | } | ||
| + | else | ||
| + | { | ||
| + | // This should never happen with Session.SynchronizeDirectories | ||
| + | Console.WriteLine("Timestamp of {0} kept with its default (current time)", e.Destination); | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </code> | ||
| ==== [[vbnet]] VB.NET Example ==== | ==== [[vbnet]] VB.NET Example ==== | ||