我想从文件夹中获取.dat和.ctl文件扩展名,并将其放在二维数组中。然后在电子邮件正文中的两个不同列下显示两个不同的文件扩展名。怎么做。
Thanx SysDragon,但我如何动态地获取表格行中的文件名。我必须在邮件正文中显示一个表格格式,其中一列包含数据文件和其他ctl文件。我如何填充行。到目前为止我的代码是:
Dim str As New StringBuilder
str.Append("<html><head></head><title></title>")
str.Append("<body style='font-size:12px;font-family:Trebuchet MS;'>")
str.Append("<table width='600px' align='center' border='0' cellpadding='0' cellspacing='0' style='border-top:5px solid white;'")
str.Append("<tr><td>DATFiles</td><td>CTLFiles</td></tr><tr><td> datfiles </td><td> ctlfiles </td> </tr></tr></table>")
datfiles和ctlfiles应该是特定文件夹中存在的文件的名称。
答案 0 :(得分:1)
您需要将文件列表放在两个不同的数组中,然后遍历数组以生成html。
Dim datFiles As String() = Directory.GetFiles("Y:\~", ".dat")
Dim ctlFiles As String() = Directory.GetFiles("Y:\~", ".ctl")
Dim index As Integer = 0
While index < datFiles.Count Or index < ctlFiles.Count
str.Append("<tr>")
str.Append("<td>" & datFiles.ElementAtOrDefault(index) & "</td>")
str.Append("<td>" & ctlFiles.ElementAtOrDefault(index) & "</td>")
str.Append("</tr>")
index += 1
End While
答案 1 :(得分:0)
您可以从以下目录中获取所需的文件(例如,指定扩展名):
在给出的链接中查看MSDN文档。他们也有例子。
拥有包含文件的数组后,您希望将数据放在电子邮件中的列上。你可以在你的身体电子邮件中使用HTML(例如一个表格)或使用标签字符使用纯文本。
要使您的正文电子邮件使用HTML代码,请使用:
Dim mail As New Net.Mail.MailMessage()
mail.IsBodyHTML = True
然后使用您想要的标签:
<table>
<tr>
<td>File DAT 1</td>
<td>File CTL 1</td>
</tr>
<tr>
<td>File DAT 2</td>
<td>File CTL 2</td>
</tr>
</table>
您必须使用循环作为文件数组,将此文本作为文本添加到HTML正文中。
用循环填充数据表,一个简单的例子:
Dim sBodyTable As String = "<table>"
Dim iMaxIndex As Integer = IIf(datFiles.Length > ctlFiles.Length, datFiles.Length, ctlFiles.Length)
For i As Integer = 0 To iMaxIndex - 1
sBodyTable &= "<tr><td>"
sBodyTable &= IIf(i < datFiles.Length, datFiles(i), "")
sBodyTable &= "</td><td>"
sBodyTable &= IIf(i < ctlFiles.Length, ctlFiles(i), "")
sBodyTable &= "</td></tr>"
Next
sBodyTable &= "</table>"