我正在使用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
有什么想法吗? 谢谢!
答案 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;
}