dlang

指定したフォルダ以下にあるファイルを条件付きで再帰的に列挙する

More than 1 year has passed since last update.

ファイル・フォルダの列挙自体は std.filedirEntries で可能で、ワイルドカードの指定も可能なのですが、もっと複雑な条件で絞り込みたいときは std.algorithmfilter を使うと便利です。

たとえば、 dir ディレクトリ以下のディレクトリ・ファイルを幅優先で列挙して、最後にファイルだけのリストを得たいときは

import std.algorithm;
import std.array;
import std.file;

string dir = "/home/kazoo04/hoge";
auto files = dirEntries(dir, SapnMode.breadth).filter!(a => a.isFile).array();

とかやるとファイル名の文字列の配列が得られます。

filter の中には、もちろん任意のDの式が書けます。
詳しくは std.algorithm を見てください。