Вы можете использовать код, подобный следующему:
ClientContext context = new ClientContext("SITEURL");
Site site = context.Site;
Web web = context.Web;
context.Load(site);
context.Load(web);
context.ExecuteQuery();
List list = listCollection.GetByTitle("Reports");
context.Load(list);
context.ExecuteQuery();
context.Load(list.RootFolder);
context.Load(list.RootFolder.Folders);
context.ExecuteQuery();
foreach (Folder folder in list.RootFolder.Folders)
{
if (folder.Name == "Folder-To-Upload")
{
FileCreationInformation fci = new FileCreationInformation();
byte[] array = System.IO.File.ReadAllBytes("SlmReportPeriods.xml"); // File which you want to upload
fci.Content = array;
fci.Overwrite = true;
fci.Url = "Sample";
File file = folder.Files.Add(fci);
ListItem item = file.ListItemAllFields;
item["Field1"] = "Example1";
item["Field2"] = "ETC.";
item.Update();
folder.Files.Add(fci);
context.ExecuteQuery();
}
}
Суть этого примера заключается в использовании объектов FileCreationInformation и File и получении ListItemAllFields элемента.