Domanda

Ho bisogno di aggiungere un nuovo collegamento documento in una libreria di documenti utilizzando il modello a oggetti client. Ho il sospetto che potrei copiare il formato del file aspx utilizzato nel "collegamento a un documento" oggetti e caricarlo come un file normale, ma spero ci sia un modo più ordinato.

Quindi quello che voglio fare è lo stesso del codice di esempio riportato di seguito, ma invece di creare un nuovo documento che voglio creare un nuovo collegamento a un documento.

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();

Aggiornamento: Secondo il mod su questo forum sto non ha permesso di chiedere come fare questo con un servizio web in una domanda separata in modo cambierò il titolo, tag e contenuti su questa questione. Qualcuno sa come fare l'inserto con un servizio di SharePoint Web o il controllo lato server o qualsiasi altra cosa?

È stato utile?

Soluzione

Si scopre che si può fare, ma è un po 'di un hack che consiste nel prelievo di una copia degli usi di file SharePoint aspx per i collegamenti di documenti e facendo una stringa di ricerca e sostituzione su di esso Creazione di un 'collegamento a un documento' elemento in una raccolta documenti di SharePoint a livello di codice .

I misura l'esempio di utilizzare il modello a oggetti client:

 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();

(Speriamo che il mod sarà non ritenga questa risposta indegna di nuovo. Peccato i mods su questi siti web di programmazione non c'è bisogno di ottenere rep StackOverflow prima di poter iniziare a gettare il loro peso intorno.)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a sharepoint.stackexchange
scroll top