有没有办法以编程方式更改SPList上的创建和修改日期?

时间:2011-12-20 14:02:46

标签: .net sharepoint-2010

我正在从excel文件迁移我的SharePoint网站上的一些讨论 - SPsite。 在我的测试中,SharePoint显然将创建和修改日期设置为上载时间。我知道如何在SPListItem上更改这些值,但我的问题是在SPList上设置这些值 有没有办法将这些属性更改为来自excel文件的值?

此致 婆婆纳

1 个答案:

答案 0 :(得分:0)

您需要使用SPList.Folders才能执行此操作。以下是神奇的功能:

private static void UpdateDatesOfAllItemsInTheList(SPList list, DateTime date)
{
    // For each message (NOT thread) in the list.
    foreach (SPListItem item in list.Items)
    {
        ChangeDate(item, date);
    }

    // For each thread.
    foreach (SPListItem folder in list.Folders)
    {
        ChangeDate(folder, date);
    }
}

private static void ChangeDate(SPListItem item, DateTime date)
{
    // Open fields for edits.
    item.ParentList.Fields[SPBuiltInFieldId.Modified].ReadOnlyField = false;
    item.ParentList.Fields[SPBuiltInFieldId.Created].ReadOnlyField = false;
    item.ParentList.Fields[SPBuiltInFieldId.DiscussionLastUpdated].ReadOnlyField = false;

    // Edit fields.
    item[SPBuiltInFieldId.Created] = date;
    item[SPBuiltInFieldId.Modified] = date;
    item[SPBuiltInFieldId.DiscussionLastUpdated] = date;

    // Save changes.
    item.UpdateOverwriteVersion();
}