我正在尝试以。的方式创建一组来自平面文件的文件夹。
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);
}
}
这不起作用我正在寻找它,所以如果我通过
ABC / DEF / GHI 和 ABC / DEF 它将适当地创建文件夹。
但我被困在如何做到这一点。
答案 0 :(得分:1)
SPFileCollection.Add()方法允许您传入文件的完整相对路径。所以这可能是一个选项,假设你不只是生成一个你可能正在做的文件夹结构,在这种情况下,除非你创建一个临时文件然后删除它以保留文件夹路径,否则这不会真正起作用。
web.Files.Add("/sites/somesite/shared documents/foldera/folderb/folderc/somefile.txt", stream);