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 に答える