gpt4 book ai didi

C# 从邮件附件中获取文件名

转载 作者:太空狗 更新时间:2023-10-29 18:23:20 24 4
gpt4 key购买 nike

我有一个简单的 C# 应用程序可以发送 SMTP 电子邮件(使用 System.Net.Mail 类)。发送(通过电子邮件发送)一个 MailMessage 对象后,我想遍历附件列表并删除与这些附件关联的原始文件......但是我很难找到与每个附件关联的完整文件路径 - 没有保留我的自己的附件文件路径集合。必须有一种从附件对象中提取完整文件路径的好方法。

我知道这一定很简单,但我在这上面花了很多时间..有时间问别人了。

最佳答案

如果您通过带有 filePath 参数的 Attachment 构造函数添加附件,这些附件可以通过 ContentStream 属性检索,并且类型为文件流。以下是获取附加文件的文件名的方法:

var fileNames = message.Attachments
.Select(a => a.ContentStream)
.OfType<FileStream>()
.Select(fs => fs.Name);

但是不要忘记先处理MailMessage对象,否则你将无法删除这些附件:

IEnumerable<string> attachments = null;
using (var message = new MailMessage())
{
...
attachments = message.Attachments
.Select(a => a.ContentStream)
.OfType<FileStream>()
.Select(fs => fs.Name);
}

foreach (var attachment in attachments )
{
File.Delete(attachment);
}

关于C# 从邮件附件中获取文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5912649/

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