Sharepoint online - copy files programmatically

Mauricio Poggio Veiro 301 Reputation points
2021-11-10T17:32:25.563+00:00

Hello,

I'm working wiht Sharepoint Online, trying to copy a file (and his metadata) from one site to another in the same site collection, I'm using MoveCopyUtil:

            using (SP.ClientContext lContext = ClientContextAuth(xsURLOrigen))
            {
                SP.MoveCopyOptions lOptions = new SP.MoveCopyOptions();
                lOptions.ResetAuthorAndCreatedOnCopy = false;
                SP.MoveCopyUtil.CopyFile(lContext, xsURLOrigen, xsURLDestino,true, lOptions);
                lContext.ExecuteQuery();
            }

This throw the next error: "Value does not fall within the expected range."

any help will be appreciated, thanks!
Mauricio.

SharePoint
SharePoint
A group of Microsoft Products and technologies used for sharing and managing content, knowledge, and applications.
9,561 questions
SharePoint Development
SharePoint Development
SharePoint: A group of Microsoft Products and technologies used for sharing and managing content, knowledge, and applications.Development: The process of researching, productizing, and refining new or existing technologies.
2,657 questions
0 comments No comments
{count} votes

Accepted answer
  1. MichaelHan-MSFT 18,016 Reputation points
    2021-11-11T07:32:39.21+00:00

    Hi @Mauricio Poggio Veiro ,

    Per my test, the MoveCopyUtil works for me. Below is my demo code:

            var userName = "michael@tenant.onmicrosoft.com";  
            var password = "xxxx";  
            var siteUrl = "https://tenant.sharepoint.com/sites/test";  
            SecureString securePassword=new SecureString();  
            foreach(char a in password)  
            {  
                securePassword.AppendChar(a);  
            }  
            var credential = new SharePointOnlineCredentials(userName, securePassword);  
            var ctx = new ClientContext(siteUrl);  
            ctx.Credentials = credential;  
            var srcUrl="https://tenant.sharepoint.com/sites/test/Shared%20Documents/aa.txt";  
            var desUrl="https://tenant.sharepoint.com/sites/test/sub1/Shared%20Documents/aa.txt";  
    
            MoveCopyOptions lOptions = new MoveCopyOptions();  
            lOptions.ResetAuthorAndCreatedOnCopy = false;  
            MoveCopyUtil.CopyFile(ctx, srcUrl, desUrl,true, lOptions);  
            ctx.ExecuteQuery();  
    

    If the answer is helpful, please click "Accept Answer" and kindly upvote it. If you have extra questions about this answer, please click "Comment".
    Note: Please follow the steps in our documentation to enable e-mail notifications if you want to receive the related email notification for this thread.



0 additional answers

Sort by: Most helpful