訪問して頂きありがとうございます。まさふくろーです。
この記事では、フォルダ内のすべてのフォルダを取得する方法をご紹介します。
目次
フォルダ内のすべてのフォルダを取得する
IO.Directory.GetDirectories(対象のフォルダパス)
IO.Directory.GetDirectories(対象のフォルダパス, 検索文字列)
定数
内容
IO.SearchOption.AllDirectories
サブフォルダも検索する
IO.SearchOption.TopDirectoryOnly
サブフォルダは検索しない
IO.Directory.GetDirectories(対象のフォルダパス, 検索文字列, 検索オプションの定数)
補足 |
引数が指定されていない場合は、例外ArgumentExceptionが発生します。 |
第1引数「対象のフォルダパス」に、フォルダではなくファイルを指定した場合は、例外IOExceptionが発生します。 |
戻り値は、サブフォルダを要素とする文字列型配列です。 |
サンプルプログラム
フォルダ構成
処理フロー
検索フォルダの1階層下のフォルダを取得する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim FoldeName As String = TextBox1.Text Dim FName As String Dim Str As String = String.Empty Try For Each FName In IO.Directory.GetDirectories(FoldeName) Str = Str & FName & ControlChars.NewLine Next Label1.Text = Str Catch ex As ArgumentException Label1.Text = "パスが指定されていません。" Catch ex As IO.IOException Label1.Text = Err.Description End Try End Sub End Class |
2 | 「取得」ボタンクリック時に以下処理を行う。 |
4 | 検索するフォルダの場所を、文字列型の変数「FoldeName」に代入。 |
10 | フォルダ名の取得処理を実行し、フォルダの数だけ以下処理を繰り返す。 |
12 | 変数「FoldeName」の値を、文字列型の変数「Str」に改行付きで追加していく。 |
16 | 正常に処理が実行された場合、変数「Str」の値をラベルに表示する。 |
18 | フォルダのパスが指定されていない場合、 |
20 | 「パスが指定されていません。」のメッセージをラベルに表示する。 |
22 | 検索するフォルダの場所に、フォルダではなくファイルを指定した場合、 |
24 | エラー内容を取得し、ラベルに表示する。 |
検索フォルダの1階層下の「T」から始まるフォルダを取得する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim FoldeName As String = TextBox1.Text Dim FName As String Dim Str As String = String.Empty Try For Each FName In IO.Directory.GetDirectories(FoldeName, "t*") Str = Str & FName & ControlChars.NewLine Next Label1.Text = Str Catch ex As ArgumentException Label1.Text = "パスが指定されていません。" Catch ex As IO.IOException Label1.Text = Err.Description End Try End Sub End Class |
2 | 「取得」ボタンクリック時に以下処理を行う。 |
4 | 検索するフォルダの場所を、文字列型の変数「FoldeName」に代入。 |
10 | フォルダ名が「T」から始まるフォルダの取得処理を実行し、フォルダの数だけ以下処理を繰り返す。 |
12 | 変数「FoldeName」の値を、文字列型の変数「Str」に改行付きで追加していく。 |
16 | 正常に処理が実行された場合、変数「Str」の値をラベルに表示する。 |
18 | フォルダのパスが指定されていない場合、 |
20 | 「パスが指定されていません。」のメッセージをラベルに表示する。 |
22 | 検索するフォルダの場所に、フォルダではなくファイルを指定した場合、 |
24 | エラー内容を取得し、ラベルに表示する。 |
検索フォルダ以下「T」から始まるすべてのフォルダを取得する
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
Public Class Form1 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click Dim FoldeName As String = TextBox1.Text Dim FName As String Dim Str As String = String.Empty Try For Each FName In IO.Directory.GetDirectories(FoldeName, "t*", IO.SearchOption.AllDirectories) Str = Str & FName & ControlChars.NewLine Next Label1.Text = Str Catch ex As ArgumentException Label1.Text = "パスが指定されていません。" Catch ex As IO.IOException Label1.Text = Err.Description End Try End Sub End Class |
2 | 「取得」ボタンクリック時に以下処理を行う。 |
4 | 検索するフォルダの場所を、文字列型の変数「FoldeName」に代入。 |
10 | フォルダ名が「T」から始まるすべてのフォルダの取得処理を実行し、フォルダの数だけ以下処理を繰り返す。 |
12 | 変数「FoldeName」の値を、文字列型の変数「Str」に改行付きで追加していく。 |
16 | 正常に処理が実行された場合、変数「Str」の値をラベルに表示する。 |
18 | フォルダのパスが指定されていない場合、 |
20 | 「パスが指定されていません。」のメッセージをラベルに表示する。 |
22 | 検索するフォルダの場所に、フォルダではなくファイルを指定した場合、 |
24 | エラー内容を取得し、ラベルに表示する。 |
関連記事
最後まで読んでいただき、ありがとうございました!
本のまとめ関連記事はこちら