Если вам нужно сделать это программно общим способом, вы можете использовать функцию, которая будет записывать содержимое вашей папки (или всю библиотеку документов) в файловую систему, и другую функцию для импорта его обратно в любую другую библиотеку документов..
Для экспорта:
void ExtractFolder(SPFolder spFolder, String systemFolder)
{
String destinationFolder = Path.Combine(systemFolder, spFolder.Name);
Directory.CreateDirectory(destinationFolder);
foreach (SPFile file in spFolder.Files)
{
String fileLocation = Path.Combine(destinationFolder, file.Name);
byte[] binaryFile = file.OpenBinary();
using (FileStream fs = new FileStream(fileLocation, FileMode.OpenOrCreate, FileAccess.Write))
{
fs.Write(binaryFile, 0, binaryFile.Length);
fs.Close();
}
}
foreach (SPFolder subfolder in spFolder.SubFolders)
{
ExtractFolder(subfolder, destinationFolder);
}
}
Для импорта:
void ImportListFromFolder(SPFolder spFolder, String systemFolder)
{
ImportFilesToFolder(spFolder, systemFolder);
DirectoryInfo directoryInfo = new DirectoryInfo(systemFolder);
foreach (DirectoryInfo subDirectory in directoryInfo.GetDirectories())
{
SPFolder subfolder = spFolder.SubFolders.Add(subDirectory.Name);
ImportListFromFolder(subfolder, subDirectory.FullName);
}
}
void ImportFilesToFolder(SPFolder spFolder, string systemFolder)
{
String fileMask = "*.*";
DirectoryInfo directoryInfo = new DirectoryInfo(systemFolder);
foreach (FileInfo fileInfo in directoryInfo.GetFiles(fileMask))
{
byte[] buffer = new byte[fileInfo.Length];
using (FileStream fs = new FileStream(fileInfo.FullName, System.IO.FileMode.Open))
{
fs.Read(buffer, 0, (int)fileInfo.Length);
fs.Close();
}
SPFile addedFile = spFolder.Files.Add(fileInfo.Name, buffer, false);
}
}