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