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 に答える