Skip to content

Demonstrates how to move a folder within a site.

See https://learn.microsoft.com/en-us/sharepoint/dev/apis/rest-api/navigation/folder-operations

View source

import argparse
import uuid

from office365.sharepoint.client_context import ClientContext
from tests.settings import cert_path, cert_thumbprint, client_id, team_site_url, tenant


def main():
    argparse.ArgumentParser(description="Moves a folder within a site").parse_args()

    ctx = ClientContext(team_site_url).with_client_certificate(
        tenant, client_id=client_id, thumbprint=cert_thumbprint, cert_path=cert_path
    )

    print("Creating a temporary folders in a Documents library ...")
    folder_from = ctx.web.default_document_library().root_folder.add(f"Name{uuid.uuid4().hex[:8]}")
    folder_to_parent = ctx.web.default_document_library().root_folder.add(f"Name{uuid.uuid4().hex[:8]}")
    # folder_to_url = "Shared Documents/archive"

    print("Moving folder...")
    # folder_to = folder_from.move_to_using_path(folder_to_parent).execute_query()
    folder_to = folder_from.move_to(folder_to_parent).execute_query()
    print(f"Folder has been moved into '{folder_to.server_relative_url}'")

    print("Cleaning up temporary folders ...")
    folder_to_parent.delete_object().execute_query()
    print("Done")


if __name__ == "__main__":
    main()

← Back to Folders