Dan*_*mta 6 c# wpf ssh sftp directory-listing
我正在开发一个简单的WPF应用程序,其唯一目的是使用Renci SSH.net库获取SshClient的工作目录,并将其进一步传递给SftpClient。
我似乎无法通过使用从RunCommand(“ pwd”)返回的绝对路径来使用sftpClient.ChangeDirectory更改目录。我肯定知道该路径确实存在,因为SshClient返回了它,但是也许我做错了什么,还是有一个错误?无论哪种方式,这是我的代码:
public static string ssh_host,
ssh_username,
ssh_password,
workingDirectory;
public MainWindow()
{
InitializeComponent();
ssh_host = "XXXXXXXXXX";
ssh_username = "XXXXXXXXXX";
ssh_password = "XXXXXXXXXX";
StartSSH();
}
private static void StartSSH()
{
using (var client = new SshClient(ssh_host, ssh_username, ssh_password))
{
try
{
client.Connect();
if (client.IsConnected)
{
Console.WriteLine("Client connected");
SshCommand getSSHWorkingDirectory = client.RunCommand("pwd");
workingDirectory = getSSHWorkingDirectory.Result;
Console.WriteLine("SSH working directory = " + workingDirectory);
// RESULT: SSH working directory = /customers/5/7/9/domain.com/httpd.private
using (var sftpClient = new SftpClient(ssh_host, ssh_username, ssh_password))
{
sftpClient.Connect();
if (sftpClient.IsConnected)
{
Console.WriteLine("SFTP working directory = " + sftpClient.WorkingDirectory);
// RESULT: SFTP working directory = /customers/5/7/9/domain.com/httpd.www <- NOTE httpd.www
sftpClient.ChangeDirectory(workingDirectory);
// ERROR: Renci.SshNet.Common.SftpPathNotFoundException: No such file
}
}
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
}
Run Code Online (Sandbox Code Playgroud)
如您所见,尝试更改使用SshClient RunCommand结果获得的目录时,抛出了异常。
我的问题是:为什么ChangeDirectory无法执行,我将如何以适当方式转发解决此问题?
任何帮助深表感谢。
问题是从 RunCommand 返回的字符串有空格,我所要做的就是:
workingDirectory = getSSHWorkingDirectory.Result.Trim();
Run Code Online (Sandbox Code Playgroud)
我已经尝试了两天来解决这个问题,当我第一次发布这个问题时,我在 2 分钟后让它工作了。
| 归档时间: |
|
| 查看次数: |
9663 次 |
| 最近记录: |