从文本框搜索字段填充列表框

Populating ListBox from textbox search fields

我正在尝试找出 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

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

    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

你的其他问题:调试的时候看看listbox项有没有。如果是,请尝试手动刷新表单。如果不是,你没有找到正确的路径。 (也许驱动器 X: 在 运行 程序时不可用)

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

尝试...

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

但是,这也取决于是否存在以 .pdf 结尾的文件。