前回、新バージョンの Desktop Locker のエンターテインメント機能を作っていたときに、Resources フォルダ内の音楽ファイルをすべて自動で取得する必要がありました。そこで以下のコードを考えました。フォルダ内の特定の形式のファイルパスを取得して ArrayList に格納するものです。たとえば music フォルダ内のすべての mp3 ファイルを取得したい場合に、このコードを使えます。

フォルダ内の特定形式のファイルパスを取得して ArrayList に格納する

画面:

コード:

Public Class Form1
    Dim file As New ArrayList

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        For Each filetmp As String In My.Computer.FileSystem.GetFiles(TextBox1.Text, FileIO.SearchOption.SearchTopLevelOnly, "*." & TextBox2.Text)

            file.Add(filetmp)

        Next

        For y = 0 To file.Count - 1
            ListBox1.Items.Add(file(y))
        Next

    End Sub
End Class

コードの説明:

My.Computer.FileSystem.GetFiles を *.* の形式と組み合わせて使い、指定したフォルダ内のすべてのファイルを検索します。FileIO.SearchOption.SearchTopLevelOnly パラメーターは、フォルダの最上位階層だけを検索するという意味です。つまり、サブフォルダの 2 階層目や 3 階層目は検索しません。*.* に一致したファイルは、そのパスを file の ArrayList に追加します。最後に、ループで file のデータを ListBox1 に出力します。

プロジェクトファイルのダウンロード:Xun6 |4Shared |Box.net