从文本框搜索字段填充ListBox

时间:2015-08-03 16:18:52

标签: vb.net listboxitem system.io.directory

我正在试图弄清楚ListBox没有填充的简单原因,目的是在目录中查找文件。文件通常看起来像FY12 Month02 BMD Mold Line.pdf,所以我为年,月和类型制作了三个文本框。我还想知道在一个文件名的三个搜索字段中使用CONTAINS的最佳方法是什么?

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click

    Dim year, month, type As String
    year = InternalAuditYear.Text
    month = InternalAuditMonth.Text
    type = InternalAuditType.Text

    Dim FileList As String() = Directory.GetFiles("X:\Internal audits\", ".pdf", SearchOption.AllDirectories)
    For Each foundFile As String In FileList
        Dim GOTCHA As String = Path.GetFileName(foundFile)
        ListBox1.Items.Add(GOTCHA)
    Next
End Sub

2 个答案:

答案 0 :(得分:1)

很可能是你的ListBox没有填充的原因是因为Directory.GetFiles()没有返回任何结果。这是由于searchPattern参数".pdf"需要通配符(*)。

...试

Directory.GetFiles("X:\Internal audits\", "*.pdf", SearchOption.AllDirectories)

但是,这也取决于有些文件以.pdf结尾。

答案 1 :(得分:0)

对于文件名分离,您可以使用一个简单的.Split(''),您可以在使用它之前在arraysize上测试...应该是这样的(现在没有VB.Net方便):< / p>

    Dim fileName As String = "FY12 Month02 BMD Mold Line.pdf"
    Dim splitFileName() As String = fileName.Split(New Char() {" "c})

    If (splitFileName.Length > 4) Then
        'OK, proper file name
        year = splitFileName(1)
        month = splitFileName(2)
        type = splitFileName(3)
    End If

您的其他问题:在调试时查看列表框项是否存在。如果是,请尝试手动刷新表单。如果不是你没有得到正确的道路。 (也许驱动X:运行程序时不可用)