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>

Last modified: by martin