【发布时间】:2015-10-06 15:50:31
【问题描述】:
我需要获取使用SSH.NET 库在 sftp 上复制文件的时间。但是 SftpFile 类仅在文件被访问和修改时返回(也可以选择以 UTC 格式返回时间戳)。但是我需要在 sftp 上复制文件时获取时间戳。这是我尝试过的:
using (var ssh = new SshClient(this.connectionInfo))
{
ssh.Connect();
string comm = "ls -al " + @"/" + remotePath + " | awk '{print $6,$7,$8,$9}'";
var cmd = ssh.RunCommand(comm);
var output = cmd.Result;
}
但上面的代码崩溃,出现异常“指定的参数超出了有效值的范围。\r\n参数名称:长度”在行 ssh.RunCommand(comm)。有没有其他方法可以使用这个库来实现这一点?
问候
【问题讨论】:
-
您的代码对我有用。
remotePath的确切值是多少?向我们展示异常调用堆栈。您使用的是什么版本的 SSH.NET? -
嗨 Martin,它崩溃了,因为我使用的用户没有运行 ssh 命令的权限。在我在 sftp 服务器上更改此设置后,代码也对我有用。