Public Function MoveListItemsSiteToSite(sourceSiteURL As String,sourceList As String, destinationSiteURL As String, destinationList As String, retainMeta As Boolean) As Boolean Using sourceSite As New SPSite(sourceSiteURL) Using sourceWeb As SPWeb = sourceSite.OpenWeb() sourceWeb.AllowUnsafeUpdates = True ' Get your source library Dim source As SPList = sourceWeb.Lists(sourceList) ' Get the collection of items to move, use source.GetItems(SPQuery) if you want a subset Dim items As SPListItemCollection = source.Items Dim fileCount As Integer = 0 Using destSite = New SPSite(destinationSiteURL) Using destinationWeb = destSite.OpenWeb() destinationWeb.AllowUnsafeUpdates = True ' get destination library Dim destination As SPList = destinationWeb.Lists(destinationList) ' Get the root folder of the destination we'll use this to add the files Dim destinationFolder As SPFolder = destinationWeb.GetFolder(destination.RootFolder.Url) ' Now to move the files and the metadata For Each item As SPListItem In items 'Get the file associated with the item Dim file As SPFile = item.File ' Create a new file in the destination library with the same properties Dim newFile As SPFile = destinationFolder.Files.Add(destinationFolder.Url + "/" + file.Name, file.OpenBinary(), file.Properties, True) If retainMeta Then Dim newItem As SPListItem = newFile.Item WriteFileMetaDataFiletoFile(item, newItem) End If file.Delete() fileCount += 1 Next destinationWeb.AllowUnsafeUpdates = False End Using End Using sourceWeb.AllowUnsafeUpdates = False Return True End Using End Using End Function Public Shared Sub WriteFileMetaDataFiletoFile(sourceItem As SPListItem, destinationItem As SPListItem) destinationItem("Editor") = sourceItem("Editor") destinationItem("Modified") = sourceItem("Modified") destinationItem("Modified By") = sourceItem("Modified By") destinationItem("Author") = sourceItem("Author") destinationItem("Created") = sourceItem("Created") destinationItem("Created By") = sourceItem("Created By") destinationItem.UpdateOverwriteVersion() End Sub
Thursday, 8 November 2012
How to copy files between two SiteCollection
Subscribe to:
Posts (Atom)