2012-06-20 70 views
0

我正在嘗試創建一組文件夾,它們以平面文件的方式進來。創建Sharepoint目錄Recurisvely

X/Y/Z

,我想爲每一個它們的目錄,但我遞歸的內存也讓我在諾茨。

這裏是我的代碼可以有人建議。

public void CreateDirectory(SPFolderCollection oWeb, string folder) 
    { 
     SPFolder theFolder = oWeb.Add(folder); 
     theFolder.Update(); 
    } 

    public void FolderCreator(SPWeb oWeb) 
    { 
     StreamReader reader = new StreamReader(this.txtFolders.Text); 
     while (reader.Peek() != -1) 
     { 
      string folderLine = reader.ReadLine(); 
      if (folderLine.Contains("/")) 
      { 
       SPFolderCollection collection = oWeb.Folders["Documents"].SubFolders[folderLine.Split('/')[0]].SubFolders; 
       CreateDirectory(collection, folderLine); 
      } 
      SPFolderCollection newCollection = oWeb.Folders["Documents"].SubFolders; 
      CreateDirectory(newCollection, folderLine); 
     } 
    } 

這不起作用,我期待爲它做recrusion所以如果我通過

ABC/DEF/GHI 和 ABC/DEF 它會去,並適當地創建的文件夾。

但我堅持如何做到這一點。

+0

什麼是您的問題? –

+0

已更新的問題 – TheMonkeyMan

回答

1

SPFileCollection.Add()方法允許您傳入文件的完整相對路徑。所以這可能是一個選擇,假設你不只是產生一個文件夾結構,你可能會這樣做,在這種情況下,除非你創建一個臨時文件,然後刪除它以保留文件夾路徑,否則這將不會真正起作用。

web.Files.Add("/sites/somesite/shared documents/foldera/folderb/folderc/somefile.txt", stream);