是否可以通过图形 API 在 C# 中保存文件附件Microsoft?
我知道我可以获取附件的属性(https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/attachment_get( - 我们也可以将其保存到某个位置吗?
一旦你有特定的Microsoft图消息,你可以把它作为参数传递给一个方法。然后,您需要发出另一个请求以通过消息 ID 获取附件,循环访问附件并将其强制转换为FileAttachment
以获取对 ContentBytes
属性的访问权限,最后将此字节数组保存到文件中。
private static async Task SaveAttachments(Message message)
{
var attachments =
await _client.Me.MailFolders.Inbox.Messages[message.Id].Attachments.Request().GetAsync();
foreach (var attachment in attachments.CurrentPage)
{
if (attachment.GetType() == typeof(FileAttachment))
{
var item = (FileAttachment)attachment; // Cast from Attachment
var folder = Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location);
var filePath = Path.Combine(folder, item.Name);
System.IO.File.WriteAllBytes(filePath, item.ContentBytes);
}
}
}
获取附件属性时,它们将包含有关附件的信息。
有三种类型的附件。
首先,检查属性@odata.type
中的附件类型并相应地处理它们。
对于fileAttachment
类型,它们包含一个contentLocation
属性,该属性是附件内容的 URI。
您可以从 URI 下载附件。