0

我试图找出 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
4

2 回答 2

1

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

尝试...

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

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

于 2015-08-03T17:01:46.860 回答
0

对于文件名分离,你可以使用一个简单的 .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

您的另一个问题:调试时查看列表框项是否存在。如果是,请尝试手动刷新表单。如果不是,你没有找到正确的路径。(可能驱动器 X:在运行程序时不可用)

于 2015-08-03T16:47:45.387 回答