使用 Microsoft Graph C# SDK 复制文件
Copy a file using Microsoft Graph C# SDK
我正在尝试使用适用于 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
作为名称参数发送,则会收到相同的错误消息,但它显示
"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();
Note: The parentReference should include the driveId
and id
parameters for the target folder.
我正在尝试使用适用于 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
作为名称参数发送,则会收到相同的错误消息,但它显示
"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();
Note: The parentReference should include the
driveId
andid
parameters for the target folder.