Создайте новую ссылку на документ с использованием SharePoint 2010

sharepoint.stackexchange https://sharepoint.stackexchange.com/questions/6080

  •  16-10-2019
  •  | 
  •  

Вопрос

Мне нужно добавить новую ссылку документа в библиотеку документов, используя модель объекта клиента. Я подозреваю, что мог скопировать формат файла .aspx, используемый в элементах «Ссылка на документ», и загрузить его как обычный файл, но я надеюсь, что есть аккуратный способ.

Так что я хочу сделать, так это то же самое, что и пример кода ниже, но вместо создания нового документа я хочу создать новую ссылку на документ.

ClientContext context = new ClientContext("http://wdev2008:22880");
context.Load(context.Web);
List list = context.Web.Lists.GetByTitle("Test Doc Link Library");
context.Load(list);
context.ExecuteQuery();

FileCreationInformation fileCreateInfo = new FileCreationInformation();
fileCreateInfo.Content = new byte[] { 0x33 };
fileCreateInfo.Url = "zerobyte";
File file = list.RootFolder.Files.Add(fileCreateInfo);
context.Load(file);
context.ExecuteQuery();

ОБНОВЛЕНИЕ: Согласно моду на этом форуме, мне не разрешено спрашивать, как сделать это с помощью веб -службы в отдельном вопросе, поэтому я буду изменять заголовок, теги и контент по этому вопросу. Кто -нибудь знает, как сделать вставку с помощью веб -службы SharePoint или управления на стороне сервера или чего -то еще?

Это было полезно?

Решение

Оказывается, это может быть сделано, но это немного взломать, что включает в себя копию использования файла файла .aspx SharePoint для ссылок на документы, поиск строки и заменить его Создание «ссылки на документ» в библиотеке документов SharePoint программно..

Я адаптировал пример для использования модели объекта клиента:

 string docLinkTemplate = null;
 using (System.IO.StreamReader sr = new System.IO.StreamReader("SharePointDocLinkTemplate.txt"))
 {
     docLinkTemplate = sr.ReadToEnd();
 }

 string docLink = "http://myserver/test.doc";
 docLinkTemplate = String.Format(docLinkTemplate, docLink);

 FileCreationInformation fileCreateInfo = new FileCreationInformation();
 fileCreateInfo.Content = Encoding.UTF8.GetBytes(docLinkTemplate);
 fileCreateInfo.Url = "testlinkfordoc.doc.aspx";
 File file = list.RootFolder.Files.Add(fileCreateInfo);
 ListItem fileListItem = file.ListItemAllFields;
 fileListItem["ContentType"] = "Link to a Document";
 FieldUrlValue urlValue = new FieldUrlValue();
 urlValue.Description = "Link to doc test";
 urlValue.Url = docLink;
 fileListItem["URL"] = urlValue;
 context.Load(file);
 context.ExecuteQuery();

(Надеемся, что мод снова не будет посчитать этот ответ недостойным. Жаль модов на этих веб -сайтах программирования, не должен получить Rep Stackoverflow, прежде чем они смогут начать бросать свой вес.)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с sharepoint.stackexchange
scroll top