Предположим что мы хотим залить файл в определенный фолдер на сервере и используем ф-ю SaveBinaryDirect.
Но фолдера такого на сервере еще нет. Как думаете какая будет ошибка? Правильно - "{"The file already exists."}" :)
Вот примерчик:
using (var clientContext = new ClientContext(@"http://server")) { var FileSrvRelUrl = "/notexsist/notexsist/blabla.txt"; using (var fileStream = new MemoryStream(new byte[100])) { Microsoft.SharePoint.Client.File.SaveBinaryDirect(clientContext, FileSrvRelUrl, fileStream, false); } }
Глупо, не логично, но это так...
При этом ф-я GetFileByServerRelativeUrl с тем же url честно выдает {"File Not Found."}.
using (var clientContext = new ClientContext(@"http://server")) { var FileSrvRelUrl = "/notexsist/notexsist/blabla.txt"; var f = clientContext.Web.GetFileByServerRelativeUrl(FileSrvRelUrl); clientContext.Load(f); clientContext.ExecuteQuery(); }
Кстати, если в примере выше вместо
clientContext.Load(f);
написать clientContext.Load(f, fi=>fi.Exists);
то исключение возникать не будет ,а поле Exists будет содержать false.
Комментариев нет:
Отправка комментария