SharePoint 2013/2010 在一个列表或文档库内移动列表项,文档和目录位置而保持last modify by 等系统字段保持不变
Posted blfbuaa
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SharePoint 2013/2010 在一个列表或文档库内移动列表项,文档和目录位置而保持last modify by 等系统字段保持不变相关的知识,希望对你有一定的参考价值。
本文讲述SharePoint 2013/2010 在一个列表或文档库内移动列表项。文档和目录位置而保持last modify by 等系统字段保持不变的解决方式。
近期遇到客户一个需求,在一个列表或文档库内移动列表项,文档和目录位置而保持last modify by 等系统字段保持不变。
研究出来了。不敢独享。特此共享出来给同鞋们做參考:
using Microsoft.SharePoint; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace MoveSPListItemTool { class Program { static void Main(string[] args) { SPSecurity.RunWithElevatedPrivileges(delegate() { using (SPSite site = new SPSite("http://SP2013/")) { site.AllowUnsafeUpdates = true; using (SPWeb web = site.OpenWeb()) { SPList list = web.Lists["Documents"]; var itemNeedToMove = list.GetItemById(7); MoveItemTo(itemNeedToMove, "TestDocumentSet"); } } }); Console.WriteLine("Done!"); Console.ReadKey(); } // Path 參数实例: Folder1, Folder1/Folder2 public static void MoveItemTo(SPListItem item, string path) { switch (item.FileSystemObjectType) { case SPFileSystemObjectType.Folder: var newFolder = string.Format("{0}/{1}/{2}", item.ParentList.RootFolder.Url, path, item.Folder.Name); item.Folder.MoveTo(newFolder); break; case SPFileSystemObjectType.File: if (item.File == null) { var file = item.Web.GetFile(item.Url); var newFilePath = string.Format("{0}/{1}/{2}_.000", item.ParentList.RootFolder.Url, path, item.ID); file.MoveTo(newFilePath); } else { var file = item.Web.GetFile(item.Url); var newFilePath = string.Format("{0}/{1}/{2}", item.ParentList.RootFolder.Url, path, item.File.Name); file.MoveTo(newFilePath); } break; } } } }
以上是关于SharePoint 2013/2010 在一个列表或文档库内移动列表项,文档和目录位置而保持last modify by 等系统字段保持不变的主要内容,如果未能解决你的问题,请参考以下文章
如何从 Sharepoint 2010 用户组中获取自定义列值
Sharepoint Online 列表中“自动编号”列-Auto Number Column