您的位置:首页 > 其它

根据所创建Item的title自动实现分配到不同的folder下

2011-08-22 11:28 274 查看
using System;

using System.Security.Permissions;

using Microsoft.SharePoint;

using Microsoft.SharePoint.Security;

using Microsoft.SharePoint.Utilities;

using Microsoft.SharePoint.Workflow;

namespace EventReceiverForMoveItem

{

/// <summary>

/// List Item Events

/// </summary>

public class EventReceiver1 : SPItemEventReceiver

{

/// <summary>

/// An item is being added.

/// </summary>

public override void ItemAdded(SPItemEventProperties properties)

{

SPSecurity.RunWithElevatedPrivileges(delegate

{

//读取XML文件,可以通过配置来选择通过item的filed判断。//XML文件 <configs><Filed>oneChoice</Filed><SecondFiled>twoChoice</SecondFiled>

System.Xml.XmlDocument doc = new System.Xml.XmlDocument();

doc.Load(@"c:\AvePointEvent.config");

System.Xml.XmlNode node = doc.SelectSingleNode("/configs/Filed");

string filed = node.InnerText;

System.Xml.XmlNode nodeSecond = doc.SelectSingleNode("/configs/SecondFiled");

string filedSecond = nodeSecond.InnerText;

SPWeb web = properties.Web;

SPList list = properties.List;

SPListItem item = properties.ListItem;

SPFile file = web.GetFile(item.Url);

string url = string.Empty;

foreach (SPListItem folder in list.Folders)

{

string tempItemFiled = item[filed].ToString().Replace("&", "");

if (folder.Name.Equals(tempItemFiled, StringComparison.CurrentCultureIgnoreCase))

{

if (!filedSecond.Equals(string.Empty))

{

string tempSecondFiled = item[filedSecond].ToString().Replace("&", "");

url = web.Url + "/" + folder.Url + "/" + tempSecondFiled + "/" + file.Name;

break;

}

else

{

url = web.Url + "/" + folder.Url + "/" + file.Name;

break;

}

}

}

try

{

file.MoveTo(url, SPMoveOperations.Overwrite);

}

catch (Exception ex)

{

url = web.Url + "/" + list.RootFolder.Url + "/UnMatch/" + file.Name;

file.MoveTo(url, SPMoveOperations.Overwrite);

}

web.Update();

base.ItemAdded(properties);

});

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐