一般情况下修改文件的属性,可以通过如下的方式来做:
var _file = context.Web.GetFileByServerRelativeUrl(path);
context.Load(_file);
context.ExecuteQuery();
_file.Properties["doccode"] = file.Name.Split(' ')[0];
_file.Properties["publishuser"] = 20;
_file.Properties["status"] = "生效";
foreach (var item in items)
{
if (file.Name.Contains(item["shortcode"].ToString()))
{
_file.Properties["createdept"] = item.Id;
continue;
}
}
_file.Update();
context.ExecuteQuery();
但是如果你要更改它的Title属性,那么就要参考如下的代码:
context.Load(file);
context.Load(file.ListItemAllFields, f => f.HasUniqueRoleAssignments);
context.Load(file.Properties);
context.Load(file.ListItemAllFields);
context.ExecuteQuery();
file.CheckOut();
file.ListItemAllFields["Title"] = Path.GetFileNameWithoutExtension(file.Name);
file.ListItemAllFields.SystemUpdate();
file.CheckIn(string.Empty, CheckinType.OverwriteCheckIn);
context.ExecuteQuery();
其实没什么太多区别,重点在 file.ListItemAllFields.SystemUpdate();要使用SystemUpdate(),不要使用 Update()