1
我想将位于文档库下的文件夹从一个网站集合传输到其他网站集合。请帮助我!将文档库文件夹从一个网站集合传输到另一个网站集合
我想将位于文档库下的文件夹从一个网站集合传输到其他网站集合。请帮助我!将文档库文件夹从一个网站集合传输到另一个网站集合
以资源管理器模式打开文档库从一个位置复制它在资源管理器视图中打开其他库在其上粘贴。
如果您需要以通用的方式以编程方式执行此操作,则可以使用将文件夹(或整个文档库)的内容写入文件系统的功能,以及将文件导入其他任何文档的另一功能图书馆。
要出口:
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);
}
}
所有文档历史记录都将丢失这样做的时候,不是吗?如何保存? – Marc 2012-11-15 07:45:33