如何使用 Tamir Gal 的 SharpSSH 从 SFTP 服务器中删除文件?我已经能够完成除删除之外的其他功能。
问问题
12752 次
4 回答
24
SshExec 类对我不起作用,但一点反射魔法起作用了:
var prop = sftp.GetType().GetProperty("SftpChannel", BindingFlags.NonPublic | BindingFlags.Instance);
var methodInfo = prop.GetGetMethod(true);
var sftpChannel = methodInfo.Invoke(sftp, null);
((ChannelSftp) sftpChannel).rm(ftpPath);
于 2011-06-28T21:57:23.750 回答
14
为此,您需要修改 SharpSSH 程序集以公开您需要的功能。
获取源代码并打开$\SharpSSH-1.1.1.13.src\SharpSSH\Sftp.cs
在类的末尾插入以下代码行:
public void Delete(string path)
{
SftpChannel.rm(path);
}
在您的项目中重新编译并引用重新编译的 DLL。您现在可以删除 SFTP 服务器上的文件。
于 2010-04-22T12:42:12.410 回答
6
那么您也可以使用SshExec类,然后使用“ RunCommand ”方法执行“rm”命令。这样您就不必重新编译和构建新的 dll。
于 2010-06-04T22:26:36.200 回答
0
使用 Tamir 的 dll,我建议使用以下代码删除。这样,您无需修改 Tamir 的 dll,而可以在您的类中编写以下代码。
string fromFile = "/a/b/MyFile.txt"
SshExec se = new SshExec(host, username, password);
se.Connect(port);
se.RunCommand("rm " + fromFile);
于 2016-12-07T18:58:16.833 回答