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 :-)
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();
}
}