As the title says, how can I Check- in & check-out files using client object model?
1 Answer
To check-out:
//get the connection
ClientContext ctx = new ClientContext("http://sitename");
//get the home page
File home = ctx.Web.GetFileByServerRelativeUrl("/SitePages/home.aspx");
ctx.load(home);
//check whether file is already checkout. If not then only do the checkout.
if (home.CheckOutType == CheckOutType.None)
{
home.CheckOut();
}
To check-in:
//Only checkin if the file is already checkout.
if (home.CheckOutType != CheckOutType.None)
{
home.CheckIn(string.Empty, CheckinType.MajorCheckIn);
}
-
1This doesn't seem to work on it's own. Do we have to call like
ctx.Execute()
or something afterwards? Jul 14, 2016 at 22:20 -
1Turns out the check-in is not performed until call
ctx.ExecuteQuery();
-- further, if the file is not checked out, this will totally throw an exception when you callctx.ExecuteQuery();
. Jul 15, 2016 at 0:56 -
Additionally the
file.CheckOut()
call will cause an exception to be thrown on the nextctx.ExecuteQuery();
if the file is already checked out to you. Jul 15, 2016 at 1:17