C#在不知道扩展名的情况下向邮件添加附件



系统生成具有不同扩展名的文件。这些文件必须发送到一个电子邮件地址。

如何在不知道扩展名的情况下将文件放入附件

例如,"sample.xls"必须添加到附件中,但应用程序也可以添加"sample.txt",我该如何处理?我现在有

attachment = new System.Net.Mail.Attachment(@"M:/" + filename + ".xls");

我想要这种

attachment = new System.Net.Mail.Attachment(@"M:/" + filename); // this didnt work

以便它发送任何类型的文件。顺便说一句,文件名不是来自代码,而是来自一个没有任何扩展名的数据库,所以很简单的"示例",它必须发送扩展名未知的文件,并且必须在最后发送正确的扩展名。

我们将非常感谢您的帮助!

也许这可以帮助你(如果你想通过循环来执行):

string[] files = Directory.GetFiles("Directory of your file");
foreach (string s in files)
{
    if (s.Contains(@"FileName without extension"))
    {
        attachment = new System.Net.Mail.Attachment(s);
        mailMessage.Attachments.Add(attachment);   // mailMessage is the name of message you want to attach the attachment
    }
}

假设filename只是一个文件名,不包含其他路径组件:

foreach (string file in Directory.GetFiles(@"M:", filename + ".*"))
{
   yourMailMessage.Attachments.Add(new System.Net.Mail.Attachment(file));
}

如果filename确实包含子目录,则

string fullPath = Path.Combine(@"M:", filename + ".*");
foreach (string file in Directory.GetFiles(Path.GetDirectoryName(fullPath), Path.GetFileName(fullPath)))
{
   yourMailMessage.Attachments.Add(new System.Net.Mail.Attachment(file));
}

相关内容

  • 没有找到相关文章

最新更新