Sharepoint Online:删除ListItem时附件是否也被删除?

时间:2016-01-21 13:17:37

标签: sharepoint sharepoint-apps client-object-model sharepoint-clientobject

如果我调用删除项目的ListItem.DeleteObject方法,ListItem的附件是否也会被删除?或者附件文件仍在我的服务器上?我怎么检查这个?我使用客户端对象模型!

1 个答案:

答案 0 :(得分:0)

是的,一旦调用ListItem.DeleteObject method并且查询通过ClientContext.ExecuteQuery method提交给服务器,与列表项关联的附件就会被删除。

以下示例演示了如何验证附件是否已被删除:

//First, lets delete list item that contains attachments 
var list = ctx.Web.Lists.GetByTitle(listTitle);
var item = list.GetItemById(itemId);
ctx.Load(list.RootFolder, f => f.ServerRelativeUrl);
item.DeleteObject(); //delete list item operation
ctx.ExecuteQuery();

//Then, let's verify whether associated attachment file(s) have been deleted  
var attachamentRootFolderUrl = string.Format("{0}/Attachments",list.RootFolder.ServerRelativeUrl);
var attachamentFolderUrl = string.Format("{0}/{1}", attachamentRootFolderUrl, itemId);
var folder = ctx.Web.GetFolderByServerRelativeUrl(attachamentRootFolderUrl);
var result = ctx.LoadQuery(folder.Folders.Where( f => f.ServerRelativeUrl == attachamentFolderUrl));
ctx.ExecuteQuery();
if (!result.Any())
{
     Console.WriteLine("Attachaments have been deleted.");
}