0

我有一个列表框,它读取预定义目录中的所有文件。在这个目录中是各种文件。我想要的是仅“过滤”PDF文件,以便仅在列表框中显示带有.pdf扩展名的文件

我该怎么做呢?

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    ' make a reference to a directory
    Dim di As New IO.DirectoryInfo("c:\")
    Dim diar1 As IO.FileInfo() = di.GetFiles()
    Dim dra As IO.FileInfo

    'list the names of all files in the specified directory
    For Each dra In diar1
        ListBox1.Items.Add(dra)
    Next
End Sub
4

2 回答 2

1

DirectoryInfo.GetFiles有一个采用字符串的重载。
该字符串是过滤文件列表结果的模式。

所以你的代码可以被简化(当然,循环的文件更少,它会更高效)使用

Dim di As New IO.DirectoryInfo("c:\")
Dim diar1 As IO.FileInfo() = di.GetFiles("*.pdf")
Dim dra As IO.FileInfo
For Each dra In diar1
    ListBox1.Items.Add(dra)
Next

另外,请注意,如果您不需要文件 FileInfo 对象,您可以简单地使用

Dim files As String() = Directory.GetFiles(yourDirectory, "*.PDF")

Directory.GetFiles仅返回一个字符串数组,其中包含请求的名称

于 2013-02-15T11:00:34.007 回答
0

你可以这样做:

For Each dra In diar1
    If System.IO.Path.GetExtension(dra.Name).ToLower() = "pdf" Then
        ListBox1.Items.Add(dra)
    End If
Next
于 2013-02-15T10:55:25.587 回答