ジュリアで特定のパス下のファイル一覧を再帰的に取得する方法
コード
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
などの関数を通じて配列としてアクセスすることができる。
しかし、何も知らないままこの関数を扱うのはかなり手間がかかるので、次のトリックを参考にして楽に使用しよう。
トリック
特定のパスを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