SPFolder.MoveTo 正在保留子文件夹的元数据,同时重置根文件夹的元数据
SPFolder.MoveTo is preserving the metadata for the sub-folders while reset the metadata for the root folder
我有以下控制台应用程序,它将一些文件夹从一个文档库移动到同一 SP 2013 网站集中的另一个文档库:-
SPList sourceomslist = omsWeb.Lists.TryGetList("Order Management");
;
foreach (SPListItem currentItem in sourceomslist.Items)
{
if (currentItem["Status"].ToString() == "Closed")
{
if (currentItem.ContentType.Name.ToLower().Contains("project"))
{
Console.WriteLine(currentItem["ID"]);
SPFolder folder = omsWeb.GetFolder(omsWeb.ServerRelativeUrl + "/Shared Documents/"+currentItem["ID"].ToString() );
folder.MoveTo(omsWeb.ServerRelativeUrl + "/ArchDocs/"+currentItem["ID"].ToString() );
}
}
}
现在 MoveTo 将保留子文件夹和文件的元数据,但它会重置已移动的根文件夹的元数据。
如果我可以强制 MoveTo 方法保留已移动的根文件夹的元数据数据,那么有人可以建议吗?
谢谢
由于目标库中不存在根文件夹,系统会先创建,所以Modified、Created会变成新的日期时间。我们需要在代码中修改它。
if (currentItem.ContentType.Name.ToLower().Contains("project"))
{
Console.WriteLine(currentItem["ID"]);
SPFolder folder = omsWeb.GetFolder(omsWeb.ServerRelativeUrl + "/Shared Documents/"+currentItem["ID"].ToString());
var modified = folder.Item["Modified"];
var created = folder.Item["Created"];
folder.MoveTo(omsWeb.ServerRelativeUrl + "/ArchDocs/" + currentItem["ID"].ToString());
SPFolder tfolder = omsWeb.GetFolder(omsWeb.ServerRelativeUrl + "/ArchDocs/" + currentItem["ID"].ToString());
tfolder.Item["Created"] = created;
tfolder.Item["Modified"] = modified;
tfolder.Item.UpdateOverwriteVersion();
}
我有以下控制台应用程序,它将一些文件夹从一个文档库移动到同一 SP 2013 网站集中的另一个文档库:-
SPList sourceomslist = omsWeb.Lists.TryGetList("Order Management");
;
foreach (SPListItem currentItem in sourceomslist.Items)
{
if (currentItem["Status"].ToString() == "Closed")
{
if (currentItem.ContentType.Name.ToLower().Contains("project"))
{
Console.WriteLine(currentItem["ID"]);
SPFolder folder = omsWeb.GetFolder(omsWeb.ServerRelativeUrl + "/Shared Documents/"+currentItem["ID"].ToString() );
folder.MoveTo(omsWeb.ServerRelativeUrl + "/ArchDocs/"+currentItem["ID"].ToString() );
}
}
}
现在 MoveTo 将保留子文件夹和文件的元数据,但它会重置已移动的根文件夹的元数据。 如果我可以强制 MoveTo 方法保留已移动的根文件夹的元数据数据,那么有人可以建议吗?
谢谢
由于目标库中不存在根文件夹,系统会先创建,所以Modified、Created会变成新的日期时间。我们需要在代码中修改它。
if (currentItem.ContentType.Name.ToLower().Contains("project"))
{
Console.WriteLine(currentItem["ID"]);
SPFolder folder = omsWeb.GetFolder(omsWeb.ServerRelativeUrl + "/Shared Documents/"+currentItem["ID"].ToString());
var modified = folder.Item["Modified"];
var created = folder.Item["Created"];
folder.MoveTo(omsWeb.ServerRelativeUrl + "/ArchDocs/" + currentItem["ID"].ToString());
SPFolder tfolder = omsWeb.GetFolder(omsWeb.ServerRelativeUrl + "/ArchDocs/" + currentItem["ID"].ToString());
tfolder.Item["Created"] = created;
tfolder.Item["Modified"] = modified;
tfolder.Item.UpdateOverwriteVersion();
}