2013-02-22 83 views
1

我有一个用户输入为D:\Test1\Test2\Test3\Test4\a\b\c\d\file.jpg根据用户输入我需要检查文件夹和子文件夹是否存在于文档库中。如何创建目录和子目录,如果它不存在SharePoint文件库

DocLib >> >>的Test1 Test2的....迪想要复制文档库中的文件夹结构,如果它存在,不是直接读取和保存其他文件创建目录和子目录比高达并且在级别的文件应该保存。

任何人都可以帮助我理解我该如何去与此?我试着用硬盘驱动器上创建本地系统文件

static void CopyFolder(string sourceFolder, string destFolder) 
     { 
      if (!Directory.Exists(sourceFolder)) 
       Directory.CreateDirectory(destFolder); 
      string[] files = Directory.GetFiles(sourceFolder); 
      foreach (string file in files) 
      { 
       string name = Path.GetFileName(file); 
       string dest = Path.Combine(destFolder, name); 
       File.Copy(file, dest); 
      } 

      //check folder in the source destination 
      string[] folders = Directory.GetDirectories(sourceFolder); 
      foreach (string folder in folders) 
      { 
       string name = Path.GetFileName(folder); 
       string dest = Path.Combine(destFolder, name); 
       System.IO.Directory.CreateDirectory(dest); 
       CopyFolder(folder, dest); 
      } 
     } 

不知道如何检查,如果目录中存在比检查SharePoint中的子目录。即通过保留指定的文件夹结构来添加文件。好心帮

回答

1

要做到这一点,你会被一个需要树路一网站制作结构:这里是一个简短的代码如何将它的根站点与UserDocument中的文件夹的根文件夹上进行:

  // This will contain all information about the path 
      DirectoryInfo infoDir = new DirectoryInfo(@"C:\Users\Administrator\Pictures2\WallPaperHD - 078.jpg"); 

      // Root folder passed => Default in SharePoint 
      if (infoDir.Parent != null) 
      { 
       // All folders are stored here 
       List<string> folders = new List<string>(); 

       // Set current folder to parent 
       DirectoryInfo currentDir = infoDir.Parent; 
       do 
       { 
        // Add its name to array 
        folders.Add(currentDir.Name); 

        // Set parent of current as current if available 
        if (currentDir.Parent != null) 
         currentDir = currentDir.Parent; 
       } 
       while (currentDir.Parent != null); 

       // Add SP structure) 
       using (SPSite site = new SPSite("http://testsite.dev")) 
       { 
        SPWeb web = site.RootWeb; 
        // Get doc library 
        SPList documentLibrary = web.GetList("/UserDocuments"); 
        // If library root exists 
        if (documentLibrary != null) 
        { 
         string folderUrl = "/UserDocuments/"; 

         for (int i = folders.Count - 1; i >= 0; i--) 
         { 
          string folder = folders[i]; 
          SPFolder newFolder = site.RootWeb.GetFolder(folderUrl + folder); 
          if (!newFolder.Exists) 
          { 
           site.RootWeb.Folders.Add(folderUrl + folder); 
           // Save changes 
           site.RootWeb.Update(); 

           folderUrl += folder + "/"; 
          } 
         } 
        } 
       } 
      } 

这将在SharePoint端创建与用户传递的路径中指定的文件夹相同的文件夹结构。

完成这一切后,您需要的是将文件保存在指定的文件夹中。

希望它能帮助,

安德鲁

相关问题