我正在试图弄清楚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
答案 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:运行程序时不可用)