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}")
Example #2
0
    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)