Delphi ActiveX
Delphi ActiveX
Remove a Remote Directory on an SFTP Server
See more SFTP Examples
Demonstrates the Chilkat SFtp.RemoveDir method, which deletes a remote directory. The only argument is the directory path.
Background: Most SFTP servers refuse to remove a directory that is not empty, so deleting a populated tree means removing its files and subdirectories first — the inverse of building a path level by level. There is no single "recursive delete" in the SFTP protocol; a client implements it by listing, descending, and removing bottom-up.
Chilkat Delphi ActiveX Downloads
var
success: Integer;
sftp: TChilkatSFtp;
port: Integer;
password: WideString;
begin
success := 0;
// Demonstrates the SFtp.RemoveDir method, which deletes a remote directory. The only argument
// is the directory path.
sftp := TChilkatSFtp.Create(Self);
// Connect, authenticate, and initialize the SFTP subsystem.
port := 22;
success := sftp.Connect('sftp.example.com',port);
if (success = 0) then
begin
Memo1.Lines.Add(sftp.LastErrorText);
Exit;
end;
// Normally you would not hard-code the password in source. You should instead obtain it
// from an interactive prompt, environment variable, or a secrets vault.
password := 'mySshPassword';
success := sftp.AuthenticatePw('mySshLogin',password);
if (success = 0) then
begin
Memo1.Lines.Add(sftp.LastErrorText);
Exit;
end;
success := sftp.InitializeSftp();
if (success = 0) then
begin
Memo1.Lines.Add(sftp.LastErrorText);
Exit;
end;
// Delete a remote directory. Most SFTP servers require the directory to be empty first.
success := sftp.RemoveDir('subdir/oldfolder');
if (success = 0) then
begin
Memo1.Lines.Add(sftp.LastErrorText);
Exit;
end;
Memo1.Lines.Add('Directory removed.');
sftp.Disconnect();