vb.net フォルダを開いてファイルを取得

'FolderBrowserDialogクラスのインスタンスを作成
Dim fbd As New FolderBrowserDialog
'上部に表示する説明テキストを指定する
fbd.Description = "フォルダを指定してください。"
'ルートフォルダを指定する
'デフォルトでDesktop
fbd.RootFolder = Environment.SpecialFolder.Desktop
'最初に選択するフォルダを指定する
'RootFolder以下にあるフォルダである必要がある
fbd.SelectedPath = "C:\Windows"
'ユーザーが新しいフォルダを作成できるようにする
'デフォルトでTrue
fbd.ShowNewFolderButton = True
'ダイアログを表示する
If fbd.ShowDialog(Me) = DialogResult.OK Then
 '選択されたフォルダを表示する
 Console.WriteLine(fbd.SelectedPath)
End 

あるフォルダ以下にあるファイルをすべて取得する
.NET Framework 1.1以前
''' <summary>
''' 指定されたフォルダ以下にあるすべてのファイルを取得する
''' </summary>
''' <param name="folder">ファイルを検索するフォルダ名。</param>
''' <param name="searchPattern">ファイル名検索文字列
''' ワイルドカード指定子(*, ?)を使用する。</param>
''' <param name="files">見つかったファイル名のリスト</param>
Public Sub GetAllFiles(ByVal folder As String, ByVal searchPattern As String, ByRef files As ArrayList)
 'folderにあるファイルを取得する
 Dim fs As String() = _
 System.IO.Directory.GetFiles(folder, searchPattern)
 'ArrayListに追加する
 files.AddRange(fs)
 'folderのサブフォルダを取得する
 Dim ds As String() = System.IO.Directory.GetDirectories(folder)
 'サブフォルダにあるファイルも調べる
 Dim d As String
 For Each d In ds
 GetAllFiles(d, searchPattern, files)
 Next d
End Sub
次にGetAllFilesメソッドの使い方を示します。ここではフォルダ""以下にあるすべてのファイルのフルパスをリストボックス(ListBox1)に表示しています。
[VB.NET]
Dim files As New ArrayList
'"C:\My Documents"以下のファイルをすべて取得
GetAllFiles("C:\My Documents", "*.*", files)
'ListBox1に結果を表示する
ListBox1.Items.AddRange(files.ToArray())

.NET Framework 2.0以降
.NET Framework 2.0からは、GetFilesメソッドですべてのサブフォルダを取得できます。このとき、3番目のパラメータにSearchOption.AllDirectoriesを指定します。
以下の例を示します。上の例と同じ事を行っています。
[VB.NET]
'"C:\My Documents"以下のファイルをすべて取得
Dim files As String() = System.IO.Directory.GetFiles( _
 "C:\My Documents", "*", System.IO.SearchOption.AllDirectories)
'ListBox1に結果を表示する
ListBox1.Items.AddRange(files)
なお、VB.NETではMy.Computer.FileSystem.GetFilesメソッドでも同様のことができます。