首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在子文件夹中创建子文件夹SharePoint Online C#

如何在子文件夹中创建子文件夹SharePoint Online C#
EN

Stack Overflow用户
提问于 2018-06-01 21:38:52
回答 2查看 2.4K关注 0票数 0

我想在C#的文档库中创建一些文件夹。

文档库中的文件夹结构应如下所示:

"98_Projekte“-->”集合命令“--> "01测试子文件夹”

在我的C#代码中,我只在"98_Projekte“中创建子文件夹"Muster Mandant”。这是正确的,但我希望之后在"Muster Mandant“中创建新的子文件夹(参见第二个foreach)。

        public static void AddFolder(ClientContext context, string[] folders)
    {
        Web web = context.Web;
        var docLibrary = web.DefaultDocumentLibrary().RootFolder;
        context.Load(docLibrary);
        context.ExecuteQuery();

        foreach (Microsoft.SharePoint.Client.Folder subFolder in docLibrary.Folders)
        {
            if (subFolder.Name == "98_Projekte")
            {
                subFolder.Folders.Add("Muster Mandant");
                context.ExecuteQuery();
                docLibrary = subFolder;
                docLibrary.Update();
            }
        }
        foreach (Microsoft.SharePoint.Client.Folder subSubFolder in docLibrary.Folders)
        {
            if (subSubFolder.Name == "Muster Mandant")
            {
                foreach (string folder in folders)
                {
                    subSubFolder.Folders.Add(folder);
                }
            }
        }
        context.ExecuteQuery();
    }
}

你有什么解决方案吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-06-04 10:50:36

你可以查看下面的代码。

 public static Folder AddSubFolder(ClientContext context, Folder ParentFolder, string folderName)
        {
            Folder resultFolder=ParentFolder.Folders.Add(folderName);
            context.ExecuteQuery();
            return resultFolder;   
        }

        static void Main(string[] args)
        {
            using (var context = new ClientContext("https://domain.sharepoint.com/sites/TST/"))
            {
                string password = "pw";
                SecureString sec_pass = new SecureString();
                Array.ForEach(password.ToArray(), sec_pass.AppendChar);
                sec_pass.MakeReadOnly();
                context.Credentials = new SharePointOnlineCredentials("lee@domain.onmicrosoft.com", sec_pass);               

                Web web = context.Web;
                var folders = web.DefaultDocumentLibrary().RootFolder.Folders;
                context.Load(folders);
                context.ExecuteQuery();

                foreach (Folder subFolder in folders)
                {
                    if (subFolder.Name == "98_Projekte")
                    {
                       Folder parent1= AddSubFolder(context,subFolder,"Muster Mandant");
                       AddSubFolder(context, parent1, "01 Test Subfolder");   
                    }
                }

                Console.WriteLine("Done");
                Console.ReadKey();
            }

        }
票数 3
EN

Stack Overflow用户

发布于 2018-06-02 05:09:44

我认为问题在于您的代码期望.Folders属性包含所有文件夹(递归),而您只获取根文件夹的直接子文件夹。在第二个循环中,检查docLibrary.Folders属性/集合的上下文,看看返回了什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50644732

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档