My customer requests moving list items to sub folders keeping item id. Most of articles talk about moving document files instead of list items. Second problem, Moving item from GUI recreate new item with new item id.
Below code solving my problem moving item to new folder keeping the same id:
var securePassword = new SecureString(); foreach (char c in password) { securePassword.AppendChar(c); } using (var clientContext = new ClientContext(siteurl)) { clientContext.Credentials = new SharePointOnlineCredentials(userName, securePassword); Web web = clientContext.Web; clientContext.Load(web,a=>a.ServerRelativeUrl); clientContext.ExecuteQuery(); List list = clientContext.Web.Lists.GetByTitle(listname); ListItem items = list.GetItemById(itemid); clientContext.Load(items,item => item.Id, item => item["FileLeafRef"],item=>item["FileDirRef"],item => item["FileRef"]); clientContext.ExecuteQuery(); var itemasfile = web.GetFileByServerRelativeUrl(items["FileRef"].ToString()); //targetfolderpath sample "Lists/ListName/FolderDestination" ; string targetfilepath = items["FileRef"].ToString().Replace(items["FileDirRef"].ToString(), targetfolderpath); itemasfile.MoveTo(targetfilepath, MoveOperations.Overwrite); clientContext.ExecuteQuery(); }
|