RSS DEV コミュニティ

グロブによるパターンマッチング:パターンでファイルを探す 5/9

Goの`filepath.Glob`関数は、パターンマッチングを使用してファイルやディレクトリを検索する強力な手段を提供します。この関数は、一致するファイルのパスのスライスとエラーを返します。エラー処理は単純で、パターン構文が不正な場合に発生する`filepath.ErrBadPattern`のみがエラーとして返されます。この関数はデフォルトで現在のワーキングディレクトリに対して動作しますが、パターン内で絶対パスまたは相対パスを指定することも可能です。パターン構文は、おなじみのシェルグロビング規則をベースにしていますが、特定のルールと制限があります。ワイルドカード文字、文字クラス、範囲を使用して、ファイル名や拡張子をマッチさせることができます。この関数はシンボリックリンクを辿らず、ファイルシステムに実際に存在するパスのみを返します。Go 1.16で導入された`io/fs`パッケージは、`GlobFS`インターフェースを提供し、ファイルシステムが最適化されたglobの実装を提供できるようにしました。ネイティブなglobの実装は、特に大規模なディレクトリ構造において、手動による走査よりも大幅に優れたパフォーマンスを発揮します。ファイルシステムが`GlobFS`を実装していない場合、Goは自動的にディレクトリ走査の実装にフォールバックします。
dev.to
Pattern Matching with Glob: Finding Files by Pattern 5/9
Create attached notes ...