gpt4 book ai didi

c# - 使用 Microsoft Graph C# SDK 复制文件

转载 作者:行者123 更新时间:2023-12-04 10:45:24 25 4
gpt4 key购买 nike

我正在尝试使用适用于 Microsoft Graph 的 C# SDK 将一个文件从一个驱动器复制到另一个驱动器,但我收到一个错误,我不确定如何处理。

这是我的代码:

public async Task CopyFile(CopyDriveFileCommand c)
{
var graphClient = CreateDelegatedGraphClient(c.Token);

var oldDrive = await graphClient
.Groups[c.OldGroupId]
.Drive
.Request()
.Select("id")
.GetAsync();

var parentReference = new ItemReference
{
DriveId = oldDrive.Id,
Id = c.FileToCopyId
};

var result = await graphClient
.Groups[c.NewGroupId]
.Drive
.Root
.ItemWithPath(c.NewPath)
.Copy("test.png", parentReference)
.Request()
.PostAsync();
}

这是我得到的错误:

Code: "-1, Microsoft.SharePoint.Client.InvalidClientQueryException"

Message: "The parameter name does not exist in method GetById."

我现在使用的是硬编码名称,但我也尝试将 null 作为 Copy() 中的名称参数发送,并且与原始文件的名称相同.如果我发送原始文件名,我会得到同样的错误。

如果我发送 null 作为 name 参数,那么我会收到相同的错误消息,但它说

"The parameter parentReference does not exist in method GetById."

非常感谢任何建议!

最佳答案

您的parentReference 应该包含目的地 的ID,而不是来源:

var parentReference = new ItemReference
{
DriveId = "Destination Drive Id",
Id = "Destination Folder Id"
};

然后您可以通过导航到源并将其复制到目标来复制文件:

var result = await graphClient
.Groups[c.OldGroupId]
.Drive
.Items[c.FileToCopyId]
.Copy("test.png", parentReference)
.Request()
.PostAsync();

来自documentation :

Note: The parentReference should include the driveId and id parameters for the target folder.

关于c# - 使用 Microsoft Graph C# SDK 复制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59729254/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com