less than 1 minute read

특정 디렉터리에 있는 파일 이름을 조회하고 싶어서 관련 함수를 찾아봤다. find_file 정도를 기대하고 찾아봤는데, 찾아봐도 없더라. 구글링해서 찾았다. Path.wildcard/2.

글로브(glob) 표현식을 인자로 받는다. 와일드카드 문자(Wildcard character)를 섞어서 검색을 할 수 있어서 함수 이름으로 wildcard 를 사용했는 것 같다. 낯설어서 관련 함수를 찾는 것부터 실패했지만 용도와 뜻을 알고 보면 괜찮은 네이밍인 것 같다. wildcard_path 정도로 path를 붙이면 좋겠지만 모듈 이름이 Path 라서 불필요하다고 생각할 수 있다.

iex> Path.wildcard("_build/**/*.{beam, app}")
["_build/shared/consolidated/Elixir.Collectable.beam",
 "_build/shared/consolidated/Elixir.Enumerable.beam",
 "_build/shared/consolidated/Elixir.IEx.Info.beam",
 "_build/shared/consolidated/Elixir.Inspect.beam",
...]

글로브 표현식에 일치하는 경로를 리스트로 리턴한다.

간지나는 함수 이름이지만 누군가 이름으로 파일을 찾는 함수가 있냐고 물어볼 것 같고 Path.wildcard/2 함수를 사용하면 된다고 알려줄 것 같다.