Dim fbd As New FolderBrowserDialog
fbd.Description = "フォルダを指定してください。"
fbd.RootFolder = Environment.SpecialFolder.Desktop
fbd.SelectedPath = "C:\Windows"
fbd.ShowNewFolderButton = True
If fbd.ShowDialog(Me) = DialogResult.OK Then
Console.WriteLine(fbd.SelectedPath)
End
あるフォルダ以下にあるファイルをすべて取得する
.NET Framework 1.1以前
Public Sub GetAllFiles(ByVal folder As String, ByVal searchPattern As String, ByRef files As ArrayList)
Dim fs As String() = _
System.IO.Directory.GetFiles(folder, searchPattern)
files.AddRange(fs)
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
GetAllFiles("C:\My Documents", "*.*", files)
ListBox1.Items.AddRange(files.ToArray())
.NET Framework 2.0以降
.NET Framework 2.0からは、GetFilesメソッドですべてのサブフォルダを取得できます。このとき、3番目のパラメータにSearchOption.AllDirectoriesを指定します。
以下の例を示します。上の例と同じ事を行っています。
[VB.NET]
Dim files As String() = System.IO.Directory.GetFiles( _
"C:\My Documents", "*", System.IO.SearchOption.AllDirectories)
ListBox1.Items.AddRange(files)
なお、VB.NETではMy.Computer.FileSystem.GetFilesメソッドでも同様のことができます。