系统生成具有不同扩展名的文件。这些文件必须发送到一个电子邮件地址。
如何在不知道扩展名的情况下将文件放入附件
例如,"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));
}