【Ruby3.x】Dir::glob()メソッドの使い方
globメソッドの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
Dir.globメソッドは、ファイルシステム上に存在するファイルやディレクトリのパス名を、指定されたパターンに基づいて検索し、取得するメソッドです。このメソッドは、一つ以上のパターン文字列を引数として受け取り、そのパターンにマッチするすべてのパス名を文字列の配列として返します。マッチするパス名が見つからない場合は、空の配列を返します。
パターン文字列には、ワイルドカードと呼ばれる特殊な文字を使用できます。例えば、*は任意の0文字以上の文字列にマッチし、?は任意の1文字にマッチします。また、[abc]のように記述すると、a、b、cのいずれか1文字にマッチします。これらのワイルドカードを組み合わせることで、柔軟な検索条件を設定できます。例えば、Dir.glob("data/*.csv")は、dataディレクトリ内のすべてのCSVファイルを検索します。さらに、Dir.glob("src/**/*.java")のように、**を用いることで、指定されたディレクトリ以下のすべてのサブディレクトリを再帰的に検索することも可能です。
検索動作をより詳細に制御するためのオプションも指定できます。例えば、File::FNM_DOTMATCHオプションを使用すると、通常は検索対象外となる.(ドット)で始まる隠しファイルやディレクトリも検索に含めることができます。このメソッドは、特定の条件に合致するファイルを効率的に探し出し、プログラム内で操作する際に非常に強力なツールとなります。
構文(syntax)
1Dir.glob("*.rb")
引数(parameters)
pattern, flags: nil, base: nil, sort: nil
- pattern: 検索パターンを指定する文字列
- flags: nil: 検索時のオプションを指定します。nilを指定した場合はオプションなしとなります。
- base: nil: 検索の基準となるディレクトリを指定します。nilを指定した場合はカレントディレクトリが基準となります。
- sort: nil: 検索結果のソート順を指定します。nilを指定した場合はソートされません。
戻り値(return)
Array または nil
指定されたパターンに一致するファイルまたはディレクトリのパスを文字列の配列として返します。一致するものがない場合は nil を返します。