【VB.NET】フォルダ内のすべてのフォルダを取得するには?

訪問して頂きありがとうございます。まさふくろーです。

この記事では、フォルダ内のすべてのフォルダを取得する方法をご紹介します。

フォルダ内のすべてのフォルダを取得する

  • フォルダに含まれるサブフォルダの一覧を取得するには、DirectoryクラスのGetDirectoriesメソッドを使います。
  • GetDirectoriesメソッドの第1引数には、対象フォルダのパスを指定します。
  • 書式は、以下になります。

IO.Directory.GetDirectories(対象のフォルダパス)

  • フォルダの一部を検索したい場合は、第2引数に指定します。
  • 書式は、以下になります。

IO.Directory.GetDirectories(対象のフォルダパス, 検索文字列)

  • サブフォルダを検索するかどうかは、第3引数に、以下定数を指定します。

    定数 内容
    IO.SearchOption.AllDirectories サブフォルダも検索する
    IO.SearchOption.TopDirectoryOnly サブフォルダは検索しない
  • 書式は、以下になります。

IO.Directory.GetDirectories(対象のフォルダパス, 検索文字列, 検索オプションの定数)

補足
引数が指定されていない場合は、例外ArgumentExceptionが発生します。
第1引数「対象のフォルダパス」に、フォルダではなくファイルを指定した場合は、例外IOExceptionが発生します。
戻り値は、サブフォルダを要素とする文字列型配列です。

サンプルプログラム

フォルダ構成

処理フロー

検索フォルダの1階層下のフォルダを取得する

2 「取得」ボタンクリック時に以下処理を行う。
4 検索するフォルダの場所を、文字列型の変数「FoldeName」に代入。
10 フォルダ名の取得処理を実行し、フォルダの数だけ以下処理を繰り返す。
12 変数「FoldeName」の値を、文字列型の変数「Str」に改行付きで追加していく。
16 正常に処理が実行された場合、変数「Str」の値をラベルに表示する。
18 フォルダのパスが指定されていない場合、
20 「パスが指定されていません。」のメッセージをラベルに表示する。
22 検索するフォルダの場所に、フォルダではなくファイルを指定した場合、
24 エラー内容を取得し、ラベルに表示する。

検索フォルダの1階層下の「T」から始まるフォルダを取得する

2 「取得」ボタンクリック時に以下処理を行う。
4 検索するフォルダの場所を、文字列型の変数「FoldeName」に代入。
10 フォルダ名が「T」から始まるフォルダの取得処理を実行し、フォルダの数だけ以下処理を繰り返す。
12 変数「FoldeName」の値を、文字列型の変数「Str」に改行付きで追加していく。
16 正常に処理が実行された場合、変数「Str」の値をラベルに表示する。
18 フォルダのパスが指定されていない場合、
20 「パスが指定されていません。」のメッセージをラベルに表示する。
22 検索するフォルダの場所に、フォルダではなくファイルを指定した場合、
24 エラー内容を取得し、ラベルに表示する。

検索フォルダ以下「T」から始まるすべてのフォルダを取得する

2 「取得」ボタンクリック時に以下処理を行う。
4 検索するフォルダの場所を、文字列型の変数「FoldeName」に代入。
10 フォルダ名が「T」から始まるすべてのフォルダの取得処理を実行し、フォルダの数だけ以下処理を繰り返す。
12 変数「FoldeName」の値を、文字列型の変数「Str」に改行付きで追加していく。
16 正常に処理が実行された場合、変数「Str」の値をラベルに表示する。
18 フォルダのパスが指定されていない場合、
20 「パスが指定されていません。」のメッセージをラベルに表示する。
22 検索するフォルダの場所に、フォルダではなくファイルを指定した場合、
24 エラー内容を取得し、ラベルに表示する。

関連記事

最後まで読んでいただき、ありがとうございました!

本のまとめ関連記事はこちら