У меня есть список 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.
Есть идеи, что я могу делать не так?
Спасибо, Торбен