def remove_files_from_directory(client: paramiko.SFTPClient, root): for i in client.listdir_attr(root): server_path = os.path.join(root, i.filename) if stat.S_ISDIR(i.st_mode): remove_files_from_directory(client, server_path) elif stat.S_ISREG(i.st_mode): client.remove(server_path) else: raise RuntimeError(f"Don't know what to do with {server_path}") print(f"Removed {server_path}") client.rmdir(root) print(f"Removed {root}")
def empty(sftp: SFTPClient, path): if not SystemUtils.isdir(sftp, path): sftp.mkdir(path) files = sftp.listdir(path=path) for f in files: file_path = os.path.join(path, f) if SystemUtils.isdir(sftp, file_path): SystemUtils.empty(sftp, file_path) else: sftp.remove(file_path)