Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sharepoint 文档库文件夹从一个网站集传输到另一个网站集_Sharepoint_Sharepoint 2007 - Fatal编程技术网

Sharepoint 文档库文件夹从一个网站集传输到另一个网站集

Sharepoint 文档库文件夹从一个网站集传输到另一个网站集,sharepoint,sharepoint-2007,Sharepoint,Sharepoint 2007,我想将文档库下的文件夹从一个网站集转移到另一个网站集。请帮帮我 在资源管理器模式下打开文档库从一个位置复制它在资源管理器视图中打开另一个库将它粘贴到其上。如果需要以通用方式以编程方式执行此操作,可以使用一个函数来写入文件夹(或整个文档库)的内容到文件系统和另一个函数,以便将其导入到任何其他文档库中 出口: void ExtractFolder(SPFolder spFolder, String systemFolder) { String destinationFolder = Pat

我想将文档库下的文件夹从一个网站集转移到另一个网站集。请帮帮我

在资源管理器模式下打开文档库从一个位置复制它在资源管理器视图中打开另一个库将它粘贴到其上。

如果需要以通用方式以编程方式执行此操作,可以使用一个函数来写入文件夹(或整个文档库)的内容到文件系统和另一个函数,以便将其导入到任何其他文档库中

出口:

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);

        }
    }

执行此操作时,所有文档历史记录都将丢失,不是吗?怎么能保存呢?