1 Minuten Lesezeit

Aus der Praxis – Mehrere Dokumente aus einer SharePoint-Bibliothek in eine andere kopieren


In Dokumentbibliotheken in SharePoint gibt es eine nette Funktion zum Kopieren von Dokumenten an einen anderen Speicherort: die Senden-An Aktion.

image

Doch leider kann hier nur jeweils eine einzelne Datei kopiert werden. Sobald man ein zweites Dokument auswählt, ist der Menüpunkt nicht mehr aktiviert.

image

Diese Funktion kann man jedoch mit Hilfe einer Custom Action selbst erweitern, so dass auch mehrere Dateien an einen neuen Speicherort kopiert werden können (der Button “Export” in den Screenshots).

Die Lösung besteht aus 2 Teilen:

  • der Custom Action in der Ribbon Bar
  • der Kopierfunktion auf einer Application Page

Für die Umsetzung der Custom Action bediene ich mich bei einem von mir erstellen Blog-Artikel zur Erkennung von ausgewählten Dokumenten in einer Bibliothek (siehe hier). Mit Hilfe der dort vorgestellten Aktion wird die ID aller selektierter Dokumente an eine Application Page weitergeleitet, auf der der Benutzer noch einmal bestätigen kann, dass er die Dokumente kopieren möchte.

image

Nach dem Klick auf den Start-Button wird die Verarbeitung der Dokumente vorgenommen. Der folgenden Code-Ausschnitt wird ausgeführt. Jedes Dokument wird mit Hilfe der CopyTo Methode zum Ziel kopiert. Praktischerweise werden beim Kopieren die zugehörigen Metadaten mitgenommen, wenn in der Zielbibliothek der passende Inhaltstyp verfügbar ist.

string destinationListUrl = "http://hansevision-dev-sp/Dokumente";
string[] itemIds =
Request
.QueryString ["ItemId"]
.Split(new char[]{','}, StringSplitOptions.RemoveEmptyEntries);
SPList list =
SPContext.Current.Web.Lists[new Guid(Request.QueryString["ListId"])];
foreach (string itemId in itemIds) {
SPListItem item =
list.GetItemById(Convert.ToInt32(itemId, CultureInfo.InvariantCulture));
item.File.CopyTo(SPUrlUtility.CombineUrl(destinationListUrl, item.File.Name),
true);
}

Infos zur CopyTo Methode gibt es hier (Link zur MSDN-Referenz):

 

Technorati-Markierungen: , , , , ,
 
Bild von Tobias Schütt
Tobias Schütt Tobias Schütt ist seit 2008 bei der HanseVision tätig. Er ist in seiner Position als Bereichsleiter Development verantwortlich für die Themen Individualentwicklung und Customizing. In diesem Umfeld werden Anforderungen analysiert, IT-Architekturen entworfen und Komponenten implementiert, die zu passgenauen Lösungen für die Kunden der HanseVision führen. Alle Artikel des Autors

Ähnliche Blog-Artikel

Mit unserem HanseVision Update sind Sie immer gut informiert über alle Themen rund um moderne Zusammenarbeit, kluge Köpfe, Lösungen und Tools, Referenzen und Aktionen.

Jetzt zum Newsletter anmelden
Updates & Aktionen
Versand alle 4-6 Wochen
Trends & aktuelle Entwicklungen