Differences
This shows you the differences between the selected revisions of the page.
| 2013-05-23 | 2013-05-23 | ||
| fixed untrue statement (martin) | c# + vb.net examples (martin) | ||
| Line 23: | Line 23: | ||
| See also ''[[library_session_filetransferred|Session.FileTransferred]]''. | See also ''[[library_session_filetransferred|Session.FileTransferred]]''. | ||
| + | ===== [[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 transfer | ||
| + | session.FileTransferProgress += SessionFileTransferProgress; | ||
| + | |||
| + | // Connect | ||
| + | session.Open(sessionOptions); | ||
| + | |||
| + | try | ||
| + | { | ||
| + | // Download files and throw on any error | ||
| + | session.GetFiles("/home/martin/public_html/", "d:\\backup\\").Check(); | ||
| + | } | ||
| + | finally | ||
| + | { | ||
| + | // Terminate line after the last file (if any) | ||
| + | if (_lastFileName != null) | ||
| + | { | ||
| + | Console.WriteLine(); | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | |||
| + | return 0; | ||
| + | } | ||
| + | catch (Exception e) | ||
| + | { | ||
| + | Console.WriteLine("Error: {0}", e); | ||
| + | return 1; | ||
| + | } | ||
| + | } | ||
| + | |||
| + | private static void SessionFileTransferProgress(object sender, FileTransferProgressEventArgs e) | ||
| + | { | ||
| + | // New line for every new file | ||
| + | if ((_lastFileName != null) && (_lastFileName != e.FileName)) | ||
| + | { | ||
| + | Console.WriteLine(); | ||
| + | } | ||
| + | |||
| + | // Print transfer progress | ||
| + | Console.Write("\r{0} ({1:P0})", e.FileName, e.FileProgress); | ||
| + | |||
| + | // Remember a name of the last file reported | ||
| + | _lastFileName = e.FileName; | ||
| + | } | ||
| + | |||
| + | private static string _lastFileName; | ||
| + | } | ||
| + | </code> | ||
| + | |||
| + | ==== [[vbnet]] VB.NET Example ==== | ||
| + | <code vbnet> | ||
| + | Imports System | ||
| + | Imports WinSCP | ||
| + | |||
| + | Friend Class Example | ||
| + | |||
| + | Public Shared Function Main() As Integer | ||
| + | |||
| + | Try | ||
| + | ' Setup session options | ||
| + | Dim sessionOptions As New SessionOptions | ||
| + | With 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" | ||
| + | End With | ||
| + | |||
| + | Using session As Session = New Session | ||
| + | ' Will continuously report progress of transfer | ||
| + | AddHandler session.FileTransferProgress, AddressOf SessionFileTransferProgress | ||
| + | |||
| + | ' Connect | ||
| + | session.Open(sessionOptions) | ||
| + | |||
| + | Try | ||
| + | ' Download files and throw on any error | ||
| + | session.GetFiles( _ | ||
| + | "/home/martin/public_html/", "d:\backup\").Check | ||
| + | Finally | ||
| + | ' Terminate line after the last file (if any) | ||
| + | If Example._lastFileName IsNot Nothing Then | ||
| + | Console.WriteLine | ||
| + | End If | ||
| + | End Try | ||
| + | End Using | ||
| + | |||
| + | Return 0 | ||
| + | Catch e As Exception | ||
| + | Console.WriteLine("Error: {0}", e) | ||
| + | Return 1 | ||
| + | End Try | ||
| + | |||
| + | End Function | ||
| + | |||
| + | Private Shared Sub SessionFileTransferProgress( | ||
| + | ByVal sender As Object, ByVal e As FileTransferProgressEventArgs) | ||
| + | ' New line for every new file | ||
| + | If (_lastFileName IsNot Nothing) AndAlso (_lastFileName <> e.FileName)) Then | ||
| + | Console.WriteLine | ||
| + | End If | ||
| + | |||
| + | ' Print transfer progress | ||
| + | Console.Write("\r{0} ({1:P0})", e.FileName, e.FileProgress) | ||
| + | |||
| + | ' Remember a name of the last file reported | ||
| + | _lastFileName = e.FileName | ||
| + | End Sub | ||
| + | |||
| + | Private Shared _lastFileName As String | ||
| + | End Class | ||
| + | </code> | ||