0
如果我调用ListItem.DeleteObject
方法删除我的项目,ListItem的附件是否也会被删除?还是附件文件仍然在我的服务器上?我怎样才能检查这个?我使用客户端对象模型!Sharepoint Online:附件是否也删除ListItem时删除?
如果我调用ListItem.DeleteObject
方法删除我的项目,ListItem的附件是否也会被删除?还是附件文件仍然在我的服务器上?我怎样才能检查这个?我使用客户端对象模型!Sharepoint Online:附件是否也删除ListItem时删除?
是的,一旦调用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.");
}