【发布时间】:2020-03-25 20:55:33
【问题描述】:
我知道我可以使用 SSH.NET 库的SftpClient 类从 SFTP 服务器上传和下载文件,但我不确定如何使用此类在 SFTP 服务器上复制或移动远程文件.我也没有在互联网上找到相关材料。如何使用 SSH.NET 库和 C# 将远程文件从目录 A 复制或移动到目录 B。
更新:
我还尝试使用下面的代码尝试 SshClient 类,但它什么也没做,既没有任何错误也没有任何异常。
ConnectionInfo ConnNfo = new ConnectionInfo("FTPHost", 22, "FTPUser",
new AuthenticationMethod[]{
// Pasword based Authentication
new PasswordAuthenticationMethod("FTPUser","FTPPass")
}
);
using (var ssh = new SshClient(ConnNfo))
{
ssh.Connect();
if (ssh.IsConnected)
{
string comm = "pwd";
using (var cmd = ssh.CreateCommand(comm))
{
var returned = cmd.Execute();
var output = cmd.Result;
var err = cmd.Error;
var stat = cmd.ExitStatus;
}
}
ssh.Disconnect();
}
在 Visual Studio 控制台上,我得到以下输出。
*SshNet.Logging Verbose: 1 : SendMessage to server 'ChannelRequestMessage': 'SSH_MSG_CHANNEL_REQUEST : #152199'。
SshNet.Logging 详细:1:来自服务器的 ReceiveMessage: 'ChannelFailureMessage': 'SSH_MSG_CHANNEL_FAILURE : #0'.*
【问题讨论】:
-
你能用 cmd telnet ftp 服务器吗?
-
我可以使用 WinSCP 实用程序成功连接和复制粘贴文件。除此之外,我可以使用 SSH.NET 库的“SftpClient”类成功连接和下载文件。
-
如果你使用 RunCommand 代替 CreateCommand 怎么样?