如何使用csom检查文件是否正在编辑(锁定?)?

时间:2015-04-28 17:45:39

标签: sharepoint csom

我正在使用sharepoint CSOM从OneDriveBusiness帐户下载/上传文件。

在下载文件之前,我需要检查文件当前是否正在使用中。 File.CheckOutType总是"无"。 我使用File.LockedByUser属性,使用以下代码,但是当文件未锁定时,我得到了一个ServerObjectNullReferenceException。

var listItem = clientDocs.GetItemById(item.Id);
clientContext.Load(listItem.File.LockedByUser);
clientContext.ExecuteQuery();
var locked = listItem.File.LockedByUser.UserId;


I was hoping to be able to do do something like : 
if (file."locked")
{
  throw exception...

}

enter code here

有什么想法吗? 谢谢!

1 个答案:

答案 0 :(得分:0)

File.LockedByUser property deferred 属性,需要明确请求,如下所示:

var list = ctx.Web.Lists.GetByTitle(listTitle);
var listItem = list.GetItemById(itemId);
ctx.Load(listItem, i => i.File.CheckOutType, i => i.File.CheckedOutByUser, i => i.File.LockedByUser);
ctx.ExecuteQuery();
if(listItem.File.CheckOutType != CheckOutType.None) //Is checked out?
{
     var checkoutUserName = listItem.File.CheckedOutByUser.LoginName;
     var lockedUserName = listItem.File.LockedByUser.LoginName;
}