2015-04-28 5 views
0

Я использую sharepoint CSOM для загрузки/выгрузки файла из учетной записи OneDriveBusiness.Как я могу проверить, отредактирован ли файл (заблокирован?) С помощью csom?

Перед загрузкой файла мне нужно проверить, используется ли файл в данный момент. File.CheckOutType всегда "None". Я использую свойство 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

File.LockedByUser property является отложила свойство, оно должно быть запрошено в явном виде, как показано ниже:

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; 
} 
+0

Спасибо за ваш ответ, но это возможно, что File.CheckOutType не всегда ни когда файл открыт на Ipad с преимуществом? Я сделаю больше тестов, но с первого взгляда редактирование файла с помощью excel не изменяет CheckOutType. –