J'ai une bibliothèque de documents dans SharePoint. Quand un nouveau fichier est téléchargé dans cette bibliothèque, je veux qu'il soit automatiquement copié dans une autre bibliothèque de documents. Comment puis-je faire ceci?Copier des fichiers dans la bibliothèque de documents dans SharePoint
Répondre
Utilisez un récepteur d'événement d'élément et remplacez l'événement ItemAdded. SPItemEventProperties vous donnera une référence à l'élément de liste via la propriété ListItem.
Il existe deux méthodes pour cela (grâce à votre découverte de CopyTo).
Méthode 1: Utilisez CopyTo
Cette méthode copie tout d'élément de liste avec son fichier associé et propriétés à un endroit dans la même collection de sites (éventuellement d'autres applications web aussi bien mais je ne l'ai pas testé). SharePoint conserve automatiquement le lien vers l'élément source si vous affichez les propriétés de l'élément ou utilisez son menu déroulant. Ce lien peut être supprimé avec UnlinkFromCopySource.
La seule astuce à CopyTo est qu'une URL complète est requise pour l'emplacement de destination.
public class EventReceiverTest : SPItemEventReceiver
{
public override void ItemAdded(SPItemEventProperties properties)
{
properties.ListItem.CopyTo(
properties.WebUrl + "/Destination/" + properties.ListItem.File.Name);
}
}
Méthode 2: copie Stream, propriétés définies manuellement
Cette méthode serait nécessaire que si vous avez besoin de plus de contrôle sur les propriétés de l'élément sont copiés ou si le contenu du fichier doivent être modifiés.
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();
}
}
déploiement
Vous avez différentes possibilités de déploiement ainsi. Vous pouvez associer des récepteurs d'événements à une fonctionnalité connectée à un type ou une liste de contenu et les ajouter par programme. Voir this article at SharePointDevWiki pour plus de détails.
- 1. Copier la bibliothèque de documents sharepoint 2003 inclure l'historique
- 2. obtenir l'URL des articles dans la bibliothèque de documents sharepoint
- 3. Stocker des documents dans un système de fichiers au lieu d'une base de données dans la bibliothèque de documents SharePoint
- 4. Surveillance d'une bibliothèque de documents SharePoint
- 5. Placer des fichiers javascript dans 12 Hive ou dans la bibliothèque de documents?
- 6. Affichage de documents (filtrés) à partir d'une bibliothèque dans Sharepoint
- 7. Bibliothèque de documents Sharepoint en tant que destination dans SSIS
- 8. Création d'une bibliothèque de documents personnalisée dans SharePoint
- 9. Téléchargement de fichiers vers la bibliothèque de documents Sharepoint (WSS 3.0) à l'aide de HTTP PUT
- 10. Comment créer une bibliothèque de documents partagés dans SharePoint pouvant être utilisée dans des sous-sites?
- 11. Fonction SharePoint personnalisée dans plusieurs portées dans la bibliothèque de documents - apparaît en tant que doublons
- 12. Définition des autorisations de bibliothèque de documents dans WSS 2.0
- 13. Modifier des images sur une Masterpage en fonction des documents de la bibliothèque de documents
- 14. Problème SharePoint lors de l'ajout d'un élément de menu personnalisé dans la bibliothèque de documents
- 15. comment copier des fichiers dans la bibliothèque ou document dir dans la phase de construction de l'iphone?
- 16. Versionnement de la bibliothèque de documents SharePoint et paramètres d'extraction requis à l'aide des services Web
- 17. Génération d'une chaîne aléatoire unique dans la bibliothèque de documents SharePoint
- 18. Comment créer un document Microsoft Word "en lecture seule" dans une bibliothèque de documents SharePoint?
- 19. Vue globale personnalisée pour les bibliothèques de documents dans Sharepoint
- 20. Créer une page Web SharePoint en dehors de la bibliothèque de documents
- 21. Intégration de bibliothèques de documents SharePoint dans une page ASP.NET
- 22. Utilisation de la bibliothèque de documents MOSS d'envoi dans
- 23. expérience de téléchargement de documents dans SharePoint améliorée
- 24. Noms de fichiers SharePoint
- 25. Impression de documents Word (MVC) ASP.NET dans SharePoint
- 26. SharePoint - Comment limiter le nombre de versions par document dans une bibliothèque de documents?
- 27. Documents Favoris de l'utilisateur Sharepoint
- 28. Implémenter différentes dates d'expiration sur des documents dans une bibliothèque
- 29. Est-il possible de créer un 'lien vers un dossier' dans une bibliothèque de documents SharePoint?
- 30. Système qui doit charger des documents dans une bibliothèque de documents MOSS
Dans le contexte des balises C# et SharePoint, cette question est tout à fait logique: le vote est rouvert. –