0

我正在尝试以以下方式创建一组来自平面文件的文件夹。

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 它将去适当地创建文件夹。

但我被困在如何做到这一点上。

4

1 回答 1

1

SPFileCollection.Add ()方法允许您传入文件的完整相对路径。因此,这可能是一个选项,假设您不只是生成一个文件夹结构,您可能正在这样做,在这种情况下,除非您创建一个临时文件然后删除它以保留文件夹路径,否则这将不会真正起作用。

web.Files.Add("/sites/somesite/shared documents/foldera/folderb/folderc/somefile.txt", stream);
于 2012-06-27T21:28:07.053 回答