我想使用VB从文件夹中获取.dat和.ctl文件扩展名

时间:2013-04-30 10:41:05

标签: vb.net

我想从文件夹中获取.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应该是特定文件夹中存在的文件的名称。

2 个答案:

答案 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>"