logo

줄리아에서 특정 경로 아래의 파일 목록을 재귀적으로 가져오는 방법 📂줄리아

줄리아에서 특정 경로 아래의 파일 목록을 재귀적으로 가져오는 방법

코드

walkdir

julia> walkdir("D:\\U\\B")
Channel{Tuple{String, Vector{String}, Vector{String}}}(0) (1 item available)

julia> collect(walkdir("D:\\U\\B"))
2-element Vector{Tuple{String, Vector{String}, Vector{String}}}:
 ("D:\\U\\B", ["b"], ["alpha.txt", "beta.txt"])
 ("D:\\U\\B\\b", [], ["m.txt"])

walkdir은 빌트인 함수로써 주어진 경로 아래의 모든 파일을 탐색한다. 그 자체로는 파일들의 정보가 담긴 튜플들의 반복자iterator고, collect 등의 함수를 통해 배열로 접근할 수 있다.

그러나 아무것도 모르는 상태에서 이 함수를 다루는 건 꽤 까다롭고, 다음의 트릭을 참고해서 편하게 사용하도록 하자.

트릭

alt text

특정 경로를 tgt이라고 한다면 다음과 같은 커맨드로써 해당 경로 아래의 파일 목록을 재귀적으로 가져올 수 있다1.

julia> [(joinpath.(root, files) for (root, dirs, files) in walkdir("tgt"))...;]
6-element Vector{String}:
 "D:\\U\\A\\x.txt"
 "D:\\U\\A\\y.txt"
 "D:\\U\\A\\zz.bmp"
 "D:\\U\\B\\alpha.txt"
 "D:\\U\\B\\beta.txt"
 "D:\\U\\B\\b\\m.txt"

환경

  • OS: Windows
  • julia: v1.11.1