プログラミングメモ

思った通りに動いてくれて嬉しかったこと

フォルダ内のファイル一覧を取得し表示してみる

概要

指定した、フォルダ内のファイルを一覧表示します。

 

準備

WindowsフォームVBプロジェクトのフォーム上に

Button.Button1(FolderBrowserDialog表示用)

Button.Button2(ファイルリスト取得実行用)

ListBox.ListBox1(ファイルリスト表示用)

FolderBrowserDialog.FolderBrowserDialog1

を設置しましょう。

 

サンプル

Private Sub Button1_Click_1(sender As Object, e As EventArgs) Handles Button1.Click

    'フォルダ選択画面を表示し
    'OKが押された時に、TextBoxへ選択フォルダのPathを表示
    If FolderBrowserDialog1.ShowDialog() = DialogResult.OK Then
        TextBox1.Text = FolderBrowserDialog1.SelectedPath
    End If

End Sub

 

Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click

    'TextBoxへ指定したディレクトリが存在するかのチェック
    If Not Directory.Exists(TextBox1.Text) Then
        MsgBox("指定のディレクトリは存在しません。")
    Exit Sub
End If

    'フォルダ内の一覧を配列に取得
    Dim Arrfile As String() = Directory.GetFiles(
    TextBox1.Text, "*", SearchOption.TopDirectoryOnly
    )

    '配列をListBoxへ表示
    ListBox1.Items.AddRange(Arrfile) 

End Sub

 

 解説

FolderBrowserDialogを利用し、Dialogでフォルダを選択可能としました。

FolderBrowserDialog.ShowDialog()を呼び出すだけで表示してくれます。

便利ですね~。

FolderBrowserDialog.SelectedPath()

選択されたフォルダのPathを取得します。

 

次に Directory.GetFiles ですが

TextBox1に指定したフォルダの

*すべてのファイル

SearchOption

引数として渡すと、ファイル一覧を配列で返してくれます。

 

SearchOptionは

TopDirectoryOnly 現在のフォルダのみ

AllDirectories サブフォルダを含む

がありますが

今回は、「指定フォルダのファイルのみ。」としましたので

TopDirectoryOnlyとなります。

 

実行結果

f:id:megrez11278:20170827124106j:plain

 

まとめ

「あるフォルダの全てのファイルに対して、一度に同じ処理を行いたい。」

時など、あるかと思いますが、そういう時などに有効です。