Phing の <fileset> は指定ディレクトリ内のファイル名一覧を取得して、別の処理に投げられるので便利に使っているんだけど、取得できたファイル名の順番は保証されていない(と思う)。
各ファイルの順番に依存するような処理が望ましいのかはともかく、ちょっと名前順に処理をしたいパターンが出てきたので、なんとかできないものかと少し考えてみた。
まずテストデータを用意する。
testdir というディレクトリ内のファイル群を、ファイル名でソートしつつ処理したいというのが今回の目的。
Phing 用に作成した build.xml がこちら。
これを Phing で実行すると、このような結果になる。
<fileset> で取得した場合は、22test.txt、10test.txt、30test.txt、40test.txt のように順不同になっているが、<exec> の中で find コマンドを利用してゴニョゴニョやったものは、10 → 22 → 30 → 40 の順番になっている。
Phing を拡張するほうが正しい姿なのかも知れないけど、とりあえず今の要件は満たせそうなので、コレでやってみよう。