因为一些原因,TFTP走不了,只能走SSH。
于是一开始下载了sshopen,写脚本,但是需要手动输入密码。在C#中,调用bat后,不知道怎么输入密码(到目前还是没有解决),不调用Bat,手动执行,就无法获取传输状态,判断文件接收是否正常。
因为写的是一个一键上传下载的软件,所以不能让用户去输入这个密码。在试了sendkey模拟键盘输入之后,发现也不能获取到传输状态。
这时就发现了网上的一个第三方库,Renci.SshNet(github地址:https://github.com/sshnet/SSH.NET)
使用第三方库时也出现了一些问题,这里只说一个。
网上找了类似的问题,给出的解决方案大多数说的都是DLL版本太老之类的
在借助SSHOPEN直接在dos中运行scp命令上传文件时,我们可以将文件传到目标路径的文件夹中,因此地址都是填到目标文件夹,但是Renci.Sshnet中的up/down方法是直接传到目录下的某个文件,remotefilename就得是一个文件名。