Mam bibliotekę dokumentów w SharePoint. Kiedy nowy plik jest przesyłany do tej biblioteki, chcę, aby był automatycznie kopiowany do innej biblioteki dokumentów. Jak mogę to zrobić?Kopiowanie plików do biblioteki dokumentów w SharePoint
Odpowiedz
Użyj odbiornika zdarzeń przedmiotu i zastąp go wydarzenie ItemAdded. SPItemEventProperties podaje odwołanie do elementu listy za pośrednictwem właściwości ListItem.
Są dwie metody, aby to zrobić (dzięki odkryciu CopyTo).
Metoda 1: Użyj CopyTo
Metoda ta kopie dowolnego elementu listy ze związanym z nim plików i właściwości do dowolnego miejsca w tym samym zbiorze witryn (ewentualnie innych aplikacji internetowych, jak dobrze, ale nie testowałem). Program SharePoint automatycznie zachowuje także łącze do elementu źródłowego, jeśli przegląda się właściwości elementu lub korzysta z jego menu rozwijanego. Ten link można usunąć za pomocą UnlinkFromCopySource.
Jedyna sztuczka dla CopyTo polega na tym, że pełny adres URL jest wymagany dla lokalizacji docelowej.
public class EventReceiverTest : SPItemEventReceiver
{
public override void ItemAdded(SPItemEventProperties properties)
{
properties.ListItem.CopyTo(
properties.WebUrl + "/Destination/" + properties.ListItem.File.Name);
}
}
Metoda 2: Strumień kopia ręcznie ustawić właściwości
Metoda ta byłaby konieczna tylko wtedy, gdy potrzebna była większa kontrola nad którymi właściwości elementu są kopiowane lub jeśli zawartość pliku muszą zostać zmienione.
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();
}
}
Wdrożenie
Masz różne opcje wdrażania, jak również. Możesz powiązać odbiorniki zdarzeń z funkcją związaną z typem treści lub listą i programowo je dodać. Aby uzyskać więcej informacji, patrz this article at SharePointDevWiki.
- 1. Kopiowanie pliku do biblioteki programu Sharepoint w R
- 2. Przesyłanie plików do biblioteki dokumentów SharePoint (WSS 3.0) za pomocą protokołu HTTP PUT
- 3. Sharepoint: Jak filtrować widok biblioteki dokumentów, aby wyświetlić zawartość podfolderu?
- 4. Przechowywanie dokumentów w systemie plików zamiast w bazie danych w bibliotece dokumentów SharePoint
- 5. Kopiowanie uprawnień do plików, ale nie plików
- 6. Wyszukiwanie w SharePoint nie indeksowanie zawartości bibliotek dokumentów
- 7. iPhone - kopiowanie pliku z zasobów do dokumentów powoduje błąd
- 8. Kopiowanie wielu plików w Delphi
- 9. Odbiornik zdarzeń dla biblioteki dokumentów
- 10. Kopiowanie plików do usługi Azure VM
- 11. Jak przekazywać poświadczenia do httpwebrequest w celu uzyskania dostępu do biblioteki SharePoint
- 12. Kopiowanie z dokumentów MS Word w polu tekstowym strony internetowej
- 13. FSEvents i kopiowanie dużych plików
- 14. Wielokrotne logowanie do otwierania dokumentów biurowych zapisanych w bibliotece dokumentów w SharePoint 2010 przy użyciu uwierzytelniania opartego na roszczeniach
- 15. Kopiowanie plików z mojego projektu w Maven
- 16. Uzyskiwanie listy plików w folderze dokumentów
- 17. Podłączanie do serwera SharePoint po stronie serwera
- 18. lista kopiowanie plików z jednego folderu do innego w R
- 19. W MS DOS kopiowanie kilku plików do jednego pliku
- 20. Kopiowanie plików do komputerów w wierszu poleceń Windows Network
- 21. Dodaj pole odnośnika do typu zawartości w programie SharePoint
- 22. Konwersja plików Scala do biblioteki DLL
- 23. Problem programu SharePoint podczas dodawania niestandardowego elementu menu w bibliotece dokumentów
- 24. Kopiowanie plików podczas pakowania - messages.properties z JodaTime
- 25. Java dołączanie dokumentów XML do istniejących dokumentów
- 26. Prześlij plik do programu SharePoint za pośrednictwem wbudowanych usług WWW.
- 27. Czy można bezpiecznie używać XMLDecoder do odczytu plików dokumentów?
- 28. Kopiowanie plików z systemu Windows do podsystemu Ubuntu
- 29. CMake Custom Command kopiowanie wielu plików
- 30. Kopiowanie tylko istniejących plików za pomocą robocopy
W kontekście znaczników C# i SharePoint to pytanie ma sens - głosowanie na ponowne otwarcie. –