如果我调用删除项目的ListItem.DeleteObject
方法,ListItem的附件是否也会被删除?或者附件文件仍在我的服务器上?我怎么检查这个?我使用客户端对象模型!
答案 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.");
}