循环文件夹的文件并添加为附件

时间:2014-09-18 11:51:35

标签: c# .net smtp directory

我有一个包含.pdf.xls的文件夹,但数字会不时变化,这对我来说是主要问题。现在根据我的要求,我必须阅读地点这两种类型的文件都添加到我的smtp邮件代码中作为附件..

Attachment att = new Attachment(sourceDir);
mail.Attachments.Add(att);

这是针对一个文件附件。如何在此代码中添加如上所述的所有attachement .. 请帮帮我..

2 个答案:

答案 0 :(得分:1)

你可以这样:

// Get all the files in the sourceDir
string[] filePaths = Directory.GetFiles(@"sourceDir");

// Get the files that their extension are either pdf of xls. 
var files = filePaths.Where(x=> Path.GetExtension(x).Contains(".pdf") ||
                                Path.GetExtension(x).Contains(".xls"));

// Loop through the files enumeration and attach each file in the mail.
foreach(var file in files)
{
    var attachment = new Attachment(file);
    mail.Attachments.Add(attachment);
}

答案 1 :(得分:0)

string[] fileNames  = System.IO.Directory.EnumerateFiles("C:\myLocation", "*.xls", System.IO.SearchOption.AllDirectories).ToArray();

将在给定目录中检索具有给定模式的文件名。您可以从源路径加载它们并将它们附加到您的邮件。

编辑:忘了.ToArray()