用于.NET的SFTP库?

时间:2016-04-21 15:50:49

标签: .net sftp

我正在寻找一个可以在.NET 4.5x解决方案中使用的库,在给定SFTP URL,用户名和密码的情况下,我可以连接到远程sftp服务器并下载文件。图书馆应该......

  1. 免费

  2. 提供如何使用它的样本或文件

  3. 有什么建议吗?

    谢谢!

1 个答案:

答案 0 :(得分:4)

我目前使用WinSCP。它有一个.NET程序集,可用于以编程方式创建和管理SFTP,SCP,FTP和WebDAV连接。

以下是他们的文档中的一个示例:

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 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);

                // Upload files
                TransferOptions transferOptions = new TransferOptions();
                transferOptions.TransferMode = TransferMode.Binary;

                TransferOperationResult transferResult;
                transferResult = session.PutFiles(@"d:\toupload\*", "/home/user/", false, transferOptions);

                // Throw on any error
                transferResult.Check();

                // Print results
                foreach (TransferEventArgs transfer in transferResult.Transfers)
                {
                    Console.WriteLine("Upload of {0} succeeded", transfer.FileName);
                }
            }

            return 0;
        }
        catch (Exception e)
        {
            Console.WriteLine("Error: {0}", e);
            return 1;
        }
    }
}