.NET 的 SFTP 库?
SFTP library for .NET?
我正在寻找一个可以在 .NET 4.5x 解决方案中使用的库,给定一个 SFTP URL、用户名和密码,我就可以连接到远程 sftp 服务器并下载文件.图书馆应该...
自由
提供有关如何使用它的示例或文档
有什么建议吗?
谢谢!
我目前使用 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;
}
}
}
我正在寻找一个可以在 .NET 4.5x 解决方案中使用的库,给定一个 SFTP URL、用户名和密码,我就可以连接到远程 sftp 服务器并下载文件.图书馆应该...
自由
提供有关如何使用它的示例或文档
有什么建议吗?
谢谢!
我目前使用 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;
}
}
}