MailKit - 如何获取每个附件的大小
MailKit - How to get size of each attachment
我想将附件信息格式化为具有 文件名 和 文件大小
的字符串
我可以在 Attachments.ContentDisposition
中得到 FileName,但是 Size 是 null
。还有其他获取方式吗?
例如:string.Join(',' + Environment.NewLine, mailData[i].Attachments.ToList().Select(y => y.ContentDisposition.FileName + '(' + y.ContentDisposition.Size.ToString() + ')').ToList())
我想要的示例输出:
xxx.jpg(123 bytes),
xxx.png(456 bytes),
xxx.pdf(123456 bytes),
没有 属性 可以为您提供大小(ContentDisposition
上的 Size
属性 依赖于发送客户端来设置它,即使设置了也可能不会准确)。
所以要获得附件的大小,您需要这样做:
static long MeasureAttachmentSize (MimePart part)
{
using (var measure = new MimeKit.IO.MeasuringStream ()) {
part.Content.DecodeTo (measure);
return measure.Length;
}
}
我想将附件信息格式化为具有 文件名 和 文件大小
的字符串我可以在 Attachments.ContentDisposition
中得到 FileName,但是 Size 是 null
。还有其他获取方式吗?
例如:string.Join(',' + Environment.NewLine, mailData[i].Attachments.ToList().Select(y => y.ContentDisposition.FileName + '(' + y.ContentDisposition.Size.ToString() + ')').ToList())
我想要的示例输出:
xxx.jpg(123 bytes),
xxx.png(456 bytes),
xxx.pdf(123456 bytes),
没有 属性 可以为您提供大小(ContentDisposition
上的 Size
属性 依赖于发送客户端来设置它,即使设置了也可能不会准确)。
所以要获得附件的大小,您需要这样做:
static long MeasureAttachmentSize (MimePart part)
{
using (var measure = new MimeKit.IO.MeasuringStream ()) {
part.Content.DecodeTo (measure);
return measure.Length;
}
}