我有一个简单的 C# 应用程序,用于发送 SMTP 电子邮件(使用 System.Net.Mail 类)。发送(通过电子邮件发送)MailMessage 对象后,我想遍历附件列表并删除与这些附件关联的原始文件...但是我很难找到与每个附件关联的完整文件路径 - 不保留我的附件自己的附件文件路径集合。必须有一种好方法从附件对象中提取完整的文件路径。
我知道这一定很简单,但我在这上面花了很多时间......是时候询问其他人了。
如果您通过Attachment
构造函数与filePath
参数,这些附件可以通过检索ContentStream
属性和类型FileStream
。以下是获取附加文件的文件名的方法:
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);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)