У меня есть список SharePoint, к которому я добавляю новые ListItems с использованием объектной модели клиента. Добавление ListItems не является проблемой и отлично работает.
Теперь я хочу добавить вложения.
Я использую SaveBinaryDirect следующим образом:
File.SaveBinaryDirect(clientCtx, url.AbsolutePath + "/Attachments/31/" + fileName, inputStream, true);
Он работает без каких-либо проблем, пока элемент, к которому я пытаюсь добавить вложение, уже имеет вложение, которое было добавлено через сайт SharePoint, а не с помощью объектной модели клиента.
Когда я пытаюсь добавить вложение к элементу, у которого еще нет вложений, я получаю следующие ошибки (оба происходят, но не с теми же файлами, но эти два сообщения появляются последовательно):
The remote server returned an error: (409) Conflict
The remote server returned an error: (404) Not Found
Я подумал, что, возможно, мне нужно сначала создать папку вложения для этого элемента. Когда я попробую следующий код:
clientCtx.Load(ticketList.RootFolder.Folders);
clientCtx.ExecuteQuery();
clientCtx.Load(ticketList.RootFolder.Folders[1]); // 1 -> Attachment folder
clientCtx.Load(ticketList.RootFolder.Folders[1].Folders);
clientCtx.ExecuteQuery();
Folder folder = ticketList.RootFolder.Folders[1].Folders.Add("33");
clientCtx.ExecuteQuery();
Я получаю сообщение об ошибке:
Cannot create folder "Lists/Ticket System/Attachment/33"
У меня есть полные права администратора для сайта/списка SharePoint.
Любые идеи, что я могу делать неправильно?
Спасибо, Торбен