Differences

This shows you the differences between the selected revisions of the page.

2015-12-21 2015-12-21
5.8 Switch -latest for get and put commands to transfer the latest file only (martin) c# example (martin)
Line 2: Line 2:
===== [[library]] Using WinSCP .NET Assembly ===== ===== [[library]] Using WinSCP .NET Assembly =====
 +==== PowerShell ====
The following example uses [[library|WinSCP .NET assembly]] from a [[library_powershell|PowerShell]] script. If you have another preferred language, you can easily translate it. The following example uses [[library|WinSCP .NET assembly]] from a [[library_powershell|PowerShell]] script. If you have another preferred language, you can easily translate it.
Line 62: Line 63:
    Write-Host $_.Exception.Message     Write-Host $_.Exception.Message
    exit 1     exit 1
 +}
 +</code>
 +
 +==== C# ====
 +
 +<code csharp>
 +using System;
 +using System.Linq;
 +using WinSCP;
 +
 +class Program
 +{
 +    static int Main(string[] args)
 +    {
 +        try
 +        {
 +            // Setup session options
 +            SessionOptions sessionOptions = new SessionOptions
 +            {
 +                Protocol = Protocol.Sftp,
 +                HostName = "example.com",
 +                UserName = "user",
 +                Password = "mypassword",
 +                SshHostKeyFingerprint = "ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx",
 +            };
 +
 +            using (Session session = new Session())
 +            {
 +                // Connect
 +                session.Open(sessionOptions);
 +
 +                const string remotePath = "/home/user/";
 +                const string localPath = "c:\\downloaded\\";
 +
 +                // Get list of files in the directory
 +                RemoteDirectoryInfo directoryInfo = session.ListDirectory(remotePath);
 +
 +                // Select the most recent file
 +                RemoteFileInfo latest =
 +                    directoryInfo.Files
 +                        .Where(file => !file.IsDirectory)
 +                        .OrderByDescending(file => file.LastWriteTime)
 +                        .FirstOrDefault();
 +
 +                // Any file at all?
 +                if (latest == null)
 +                {
 +                    throw new Exception("No file found");
 +                }
 +
 +                // Download the selected file
 +                session.GetFiles(session.EscapeFileMask(remotePath + latest.Name), localPath).Check();
 +            }
 +
 +            return 0;
 +        }
 +        catch (Exception e)
 +        {
 +            Console.WriteLine("Error: {0}", e);
 +            return 1;
 +        }
 +    }
} }
</code> </code>

Last modified: by martin