SSH.NETライブラリは、再帰的操作をサポートしていません。したがって、再帰的な削除は利用できません。
SftpClient.ListDirectory
メソッドを使用すると、すべてのファイルとサブフォルダを再帰的に一覧表示し、1つずつ削除する必要があります。
または別のSFTPライブラリを使用してください。
たとえば、WinSCP .NET assemblyとすると、ディレクトリを再帰的にダウンロードできるSession.RemoveFiles
methodを使用できます。 SSHでコマンドを実行する代わりに
コード-r または のrm -rf SFTP RMを使用して
// Setup session options
SessionOptions sessionOptions = new SessionOptions
{
Protocol = Protocol.Sftp,
HostName = "example.com",
UserName = "user",
Password = "mypassword",
SshHostKeyFingerprint = "ssh-rsa 2048 xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"
};
using (Session session = new Session())
{
// Connect
session.Open(sessionOptions);
// Delete the directory recursively
session.RemoveFiles("/directory/to/delete").Check();
}
(私はWinSCPのの著者です)