c#-Microsoft Graph API-DriveItem的权限不起作用

时间:2019-12-04 16:15:56

标签: c# microsoft-graph microsoft-graph-sdks

我正在使用Microsoft Graph将DriveItem创建为Folder,并且试图将权限设置为“替换”。我尝试了以下方法:

var driveItem = new DriveItem
{
    Name = Customer_Name.Text + Customer_LName.Text,
    Folder = new Folder { },
    AdditionalData = new Dictionary<string, object>()
    { 
        { "@microsoft.graph.conflictBehavior", "replace" }
    }
};

var newFolder = await App.GraphClient
    .Me
    .Drive
    .Items["item.ID"]
    .Children
    .Request()
    .AddAsync(driveItem);

第一次运行代码时,一切都很酷,但是第二次出现此错误:

  

您无法获取文件夹的内容

哪个超级奇怪...我在做什么错?还是可以通过名称获取DriveItem以获得ID?

1 个答案:

答案 0 :(得分:0)

在这一点上,文档尚不清楚,但是"@microsoft.graph.conflictBehavior": "replace"对于“文件夹”不是有效的选项。如果考虑到replace的含义,可能会导致无意中删除所有子文件或文件夹。

关于使用路径而不是ID,您可以通过将Item["id"]替换为ItemWithPath("item/with/path")来实现:

var folder  = await App.GraphClient
    .Me
    .Drive
    .Root
    .ItemWithPath("folder name")
    .Request()
    .GetAsync();

您可以使用:

var childItems = await App.GraphClient
    .Me
    .Drive
    .Root
    .ItemWithPath("folder name")
    .Children
    .Request()
    .GetAsync();