2

We are in the process of migrating several documents from multiple document libraries into one central document library. I need to copy all of the files located in one document library on our SharePoint 2010 Foundation site to another document library. Both document libraries have the same content type but one document library is in a different subsite than the other.

I am easily able to copy the files from one document library using the Open with Explorer command under the Library tab in Library Tools. Obviously this opens windows explorer view of the files located in this document library, and I copied and pasted them into the location of the document library I want to copy them to. This works great with documents in other document libraries in the same subsite. When I do this however with a document library in a different subsite, the files come over and I can view them and everything works, only the meta data is not coming over (Title, and a few custom column values). It is important for our case to get the metadata coming over, and there are hundreds of documents so it would be a major pain to have to manually add them in one by one.

Any help will greatly be appreciated.

Thanks

3

The article referenced by Diego above includes at the bottom a PowerShell script you can download. Change the variables at the top of the script from the dummy URLs and library names included in the script to your actual web URLs and libraries and hit go. The script copies the binary contents of the files as well as the metadata from one site to another. Here is a direct link to the file that should do exactly what you're after.

http://gallery.technet.microsoft.com/Copy-all-SharePoint-Files-0999c53f

Briefly, the code in the file traverses the SharePoint hierarchy to get the library's root folder, then creates a deep copy of each item it finds within the folder. The code is fairly well documented and should be easy to extend for whatever application you need.

  • Thanks to all who submitted answers. I was hoping to do this through the web interface, but something like this will carry over all I need more thoroughly than a simply copy and paste. – J-man Mar 18 '14 at 19:27
2

Use powershell to this task, it should do very well. Maybe this article will help you.

  • This answer lacks details and is very dependent on the link, please add more details (code) from the link – Robert Lindgren Mar 18 '14 at 18:57
  • Sorry but I do not think that it is not necessary to repeat the code here, I wanted to tell him that you can do with powershell. The link is a (very complete) reference so he can do what he wants. Hope this helps. – Diego Hillesheim Mar 18 '14 at 19:24
  • It is necessary, if the link breaks your answer will be of no help at all. – Robert Lindgren Mar 18 '14 at 19:29
  • You're right, but our colleague user24313 has complemented the answer, thanks for the tip. – Diego Hillesheim Mar 18 '14 at 20:02
0

You can also write a workflow to do this. Create a workflow to set each field in the new library to same value in the field in the old library, linked by the name of the document. You may want to create the workflow first so that when you do the copy through explorer it will trigger the workflow to automatically update fields from the source list.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.