我正在向现有应用程序添加 SSH 命令执行和文件上传。在比较了不同的免费和许可库之后,我决定使用http://code.google.com/p/ssh2-net/,因为它似乎是 JAVA 库到 C# 的一个端口。我们已经对 JAVA 版本有很好的体验...
上传文件不是很成功......有人可以帮忙吗?这是我的代码,它是我找到的一些样本的组合
Connection conn = StartConnection();
// --> conn checked and is open!
Session session = conn.openSession();
session.execCommand("sudo mount -o remount,rw /");
// --> no error
SFTPv3Client client = new SFTPv3Client(conn);
// --> this throws error "Cannot access a closed Stream."
SFTPv3FileHandle handle = client.createFile("/tmp/" + sshSource.Name);
using (StreamReader sr = new StreamReader(sshSource.FullName))
{
char[] buffer = new char[1024];
int offset = 0;
while (sr.Peek() >= 0)
{
int i = sr.Read(buffer, offset, buffer.Length);
byte[] bytes = new byte[1024];
for (int j = 0; j < 1024; j++)
bytes[j] = (byte) buffer[j];
client.write(handle, offset, bytes, 0, i);
offset += i;
}
}
正如评论中提到的,在定义客户端的那一行已经有一个错误 SFTPv3Client client = new SFTPv3Client(conn);
非常感谢您的帮助,弗兰克