Ho una raccolta documenti in SharePoint. Quando un nuovo file viene caricato in quella libreria, voglio che venga automaticamente copiato in un'altra libreria di documenti. Come posso fare questo?Copia file nella libreria documenti in SharePoint
risposta
Utilizzare un ricevitore evento oggetto e ignorare l'evento ItemAdded. SPItemEventProperties fornirà un riferimento alla voce di elenco tramite la proprietà ListItem.
Ci sono due metodi per farlo (grazie alla scoperta di CopyTo).
Metodo 1: Utilizzare CopyTo
Questo metodo copia ogni elemento lista con il suo file e le proprietà associate a qualsiasi posizione all'interno della stessa raccolta siti (possibilmente altre applicazioni web come pure, ma non ho ancora testato). SharePoint mantiene automaticamente il collegamento all'elemento di origine anche se si visualizzano le proprietà dell'elemento o si utilizza il relativo menu a discesa. Questo collegamento può essere rimosso con UnlinkFromCopySource.
L'unico trucco per CopyTo è che per il percorso di destinazione è necessario un URL completo.
public class EventReceiverTest : SPItemEventReceiver
{
public override void ItemAdded(SPItemEventProperties properties)
{
properties.ListItem.CopyTo(
properties.WebUrl + "/Destination/" + properties.ListItem.File.Name);
}
}
Metodo 2: copia Stream, impostare manualmente le proprietà
Questo metodo sarebbe solo necessario se avete bisogno di più controllo su quali proprietà degli elementi vengono copiati o se il contenuto del file devono essere modificate.
public class EventReceiverTest : SPItemEventReceiver
{
public override void ItemAdded(SPItemEventProperties properties)
{
SPFile sourceFile = properties.ListItem.File;
SPFile destFile;
// Copy file from source library to destination
using (Stream stream = sourceFile.OpenBinaryStream())
{
SPDocumentLibrary destLib =
(SPDocumentLibrary) properties.ListItem.Web.Lists["Destination"];
destFile = destLib.RootFolder.Files.Add(sourceFile.Name, stream);
stream.Close();
}
// Update item properties
SPListItem destItem = destFile.Item;
SPListItem sourceItem = sourceFile.Item;
destItem["Title"] = sourceItem["Title"];
//...
//... destItem["FieldX"] = sourceItem["FieldX"];
//...
destItem.UpdateOverwriteVersion();
}
}
Deployment
Sono disponibili varie opzioni per la distribuzione pure. È possibile associare i ricevitori di eventi a una funzione collegata a un tipo di contenuto o a un elenco e aggiungerli a livello di programmazione. Vedi this article at SharePointDevWiki per maggiori dettagli.
- 1. Copia file nella libreria sharepoint in R
- 2. Caricamento di file nella libreria di documenti Sharepoint (WSS 3.0) tramite HTTP PUT
- 3. Archiviare i documenti nel file system anziché nel database nella raccolta documenti di SharePoint
- 4. Come si copia un file in SharePoint utilizzando un WebService?
- 5. Problema di SharePoint durante l'aggiunta di voci di menu personalizzate nella libreria di documenti
- 6. Modifica estensione file in SharePoint
- 7. Copia cartella da iPhone Directory risorse nella directory documenti
- 8. come scaricare un file utilizzando la libreria python-sharepoint
- 9. Lettura del file .pch nella libreria statica
- 10. Libreria per modificare documenti odt in php
- 11. Copia file da PC a iPad App Cartella documenti
- 12. Limite di dimensioni file SharePoint
- 13. Copia cartella dalla cartella principale alla directory documenti in iphone
- 14. Copia di un file in sftp con libreria jsch
- 15. Copia file nella cartella delle risorse
- 16. SVN: file mancanti nella copia locale
- 17. Copia tutti i file nella directory
- 18. Creazione libreria documenti utilizzando il modello a oggetti client
- 19. copia il file di Realm nella directory di Caches
- 20. Account di accesso multipli per l'apertura di documenti di Office salvati nella raccolta documenti in SharePoint 2010 tramite autenticazione basata sulle attestazioni
- 21. Ricevitore di eventi per libreria documenti
- 22. È possibile creare un "collegamento a una cartella" in una raccolta documenti di SharePoint?
- 23. Copia cartella (con contenuto) dal pacchetto alla directory Documenti - iOS
- 24. Azione personalizzata SharePoint nella pagina Impostazioni sito
- 25. elenco di SharePoint ricevitori di eventi non sparano quando si copia e incolla usando vista esploratore
- 26. Come posso ottenere i dati dal file nella cartella documenti
- 27. Leggi Text File nella cartella Documenti - Iphone SDK
- 28. Devo inserire il file log4j.properties nella libreria?
- 29. Copia file in un'altra directory
- 30. Eliminazione di tutti i file nella sandbox iPhone (cartella documenti)?
All'interno del contesto dei tag C# e SharePoint questa domanda ha perfettamente senso: il voto per riaprire. –