another technical blog...technically

Friday, January 26, 2018

Move SP list items

Move documents through folders in a SharePoint document library it's a recurrent task you have to face (maybe).
But what if you have to move items through folders in a list? Just look at this, maybe you'll find this useful: this is based on a simple concept, a list item is nothing but a "file", so you can easily do the work like this.
A special thank to Alessio Pau who wrote this code :-)
string websiteUrl = "http://something.com";
string expectedFolderName = "expectedFolder";

using (var ctx = new ClientContext(websiteUrl))
{
 Web web = ctx.Web;
 ctx.Load(web);
 ctx.ExecuteQuery();
 
 string currentFolderName = item["FileDirRef"].ToString();
 string itemIDForURL = item.Id + "_.000";
 string itemURL = currentFolderName + "/" + itemIDForURL;
 
 // Check if the item is in the correct folder, if not, do the following
 if (!currentFolderName.EndsWith(string.Join("/", expectedFolderName)))
 {
  // This is just a custom method which creates the folder tree
  var correctFolder = CreateMultipleLevelFolder(expectedFolderName, listName);

  // Move the file
  Microsoft.SharePoint.Client.File itemFile = ctx.Web.GetFileByServerRelativeUrl(itemURL);
  ctx.Load(itemFile);
  ctx.ExecuteQuery();

  itemFile.MoveTo(correctFolder.ServerRelativeUrl + "/" + itemIDForURL, MoveOperations.Overwrite);
  ctx.ExecuteQuery();
 }
}
Share:

Me, myself and I

My Photo
I'm just another IT guy sharing his knowledge with all of you out there.
Wanna know more?