方法: 特定のパターンに一致するサブディレクトリを検索する (Visual Basic)

GetDirectories メソッドは、ディレクトリのサブディレクトリのパス名を表す文字列の読み取り専用のコレクションを返します。 wildCards パラメーターを使用して、特定のパターンを指定できます。 サブディレクトリの内容を検索対象に含めるには、searchType パラメーターを SearchOption.SearchAllSubDirectories に設定します。

指定したパターンに一致するディレクトリが見つからなかった場合は、空のコレクションが返されます。

特定のパターンに一致するサブディレクトリを検索するには

検索するディレクトリの名前およびパスを指定して、GetDirectories メソッドを使用します。 次の例では、ディレクトリ構造内で名前に "Logs" という単語を含むすべてのディレクトリが返され、ListBox1 に追加されます。

For Each foundDirectory As String In
       My.Computer.FileSystem.GetDirectories(
           My.Computer.FileSystem.SpecialDirectories.MyDocuments,
           FileIO.SearchOption.SearchTopLevelOnly,
           "*Logs*")

    ListBox1.Items.Add(foundDirectory)
Next

信頼性の高いプログラミング

次の条件を満たす場合は、例外が発生する可能性があります。

  • パスが有効ではありません。原因として、長さが 0 の文字列であるか、空白のみが含まれているか、無効な文字が含まれているか、デバイス パスである (先頭が \\.\ である) ことが考えられます (ArgumentException)。

  • パスが Nothing であるため、有効でない (ArgumentNullException)

  • 指定したワイルドカード文字の中に 1 つ以上の Nothing、空の文字列が含まれている、または空白のみである (ArgumentNullException)。

  • directory が存在しない (DirectoryNotFoundException)。

  • directory が既存のファイルを指している (IOException)。

  • パスがシステムで定義されている最大長を超えている (PathTooLongException)。

  • パス内のファイル名またはフォルダー名にコロン (:) が含まれている、または形式が無効である (NotSupportedException)。

  • ユーザーがパスを参照するのに必要なアクセス許可がない (SecurityException)

  • ユーザーに必要な権限がない (UnauthorizedAccessException)。

関連項目