编程语言
首页 > 编程语言> > c#-使用GraphServiceClient在OneDriveForBusiness中创建嵌套目录

c#-使用GraphServiceClient在OneDriveForBusiness中创建嵌套目录

作者:互联网

我一直在尝试利用Microsoft Graph Api与MVC Web应用程序内的用户的一个驱动器业务进行通信,已经设置了具有委托权限的所有内容,并且可以在登录用户的ODB中读取和写入数据,但是可以通过任何方式可以创建嵌套的文件夹或目录结构吗?

目前,我正在使用下面的代码在用户的ODB根目录中创建文件夹,并且工作正常,但是在提供路径之前(在上载文件之前)寻找一种创建文件夹层次结构的方法.

 DriveItem rootDirectory = graphServiceClient.Me.Drive.Root.Children.Request().AddAsync(new DriveItem
            {
                Name = "RootDirectory",
                Folder = new Folder(),
            }).Result;

对于RootDirectory中的另一个文件夹,尝试这样做但似乎不起作用(其中rootDirectory是上面创建的对象)

 DriveItem subDirectory = graphServiceClient.Me.Drive.Root.Children.Request().AddAsync(new DriveItem
            {
                Name = "SubDirectory",
                Folder = rootDirectory.Folder
            }).Result;

即使它可以解决某些问题,也不确定这是否是最理想的解决方法,但建议还是值得赞赏的.

解决方法:

but looking for a way to create hierarchy of the folders when path is provided before uploading the file in it.

根据我的经验,graphServiceClient当前不支持文件夹的层次结构.

如果要创建子文件夹,则需要存在父文件夹.

解决方法是,我们可以使用以下代码创建子文件夹.您还创建了一个
递归函数创建嵌套函数

var folder= graphserviceClient.Me.Drive.Root.Children.Request()
            .AddAsync(new DriveItem
            {
                Name = "tomfolder",
                Folder = new Folder()
            }).Result;

var subfolder = graphserviceClient.Me.Drive.Items[folder.Id].Children.Request()
                .AddAsync(new DriveItem 
                {
                  Name = "subfolder",
                  Folder = new Folder()}
                ).Result;

而且您也可以将give your good ideas加入天蓝色团队.

标签:microsoft-graph,azure,azure-ad-graph-api,c
来源: https://codeday.me/bug/20191108/2009158.html