私は人口の多いファイルセットを持っているので、一致するファイル名をテキストファイルに出力する必要があります。ファイルセットを1行に1ファイルずつファイルに印刷するにはどうすればよいですか?
私はこれを試してみました:
セミコロンで区切られた単一のライン、上のすべてのファイルを印刷し<fileset id="myfileset" dir="../sounds">
<include name="*.wav" />
<include name="*.ogg" />
</fileset>
<property name="sounds" refid="myfileset" />
<echo file="sounds.txt">${sounds}</echo>
。 1行に1ファイル必要です。 OSコマンドの呼び出しやJavaコードの記述に頼らずに、どうすればいいですか?
UPDATE:
ああは、より具体的なされている必要があります - リストは、ディレクトリを含めることはできません。私はpathconvertコマンドが正確に私が行方不明だったので、とにかく受け入れられた答えとしてChssPly76をマークしています。ディレクトリを削除してファイル名のみを表示するには、"flatten" mapperを使用しました。あなたがtoStringを使用することができたAnt 1.6ので
<fileset id="myfileset" dir="../sounds">
<include name="*.wav" />
<include name="*.ogg" />
</fileset>
<pathconvert pathsep="${line.separator}" property="sounds" refid="myfileset">
<!-- Add this if you want the path stripped -->
<mapper>
<flattenmapper />
</mapper>
</pathconvert>
<echo file="sounds.txt">${sounds}</echo>
Pathconvertタスク絶対ファイルパスを作成するようです。これを防ぐ可能性はありますか?私は同じ問題がありますが、完全なパスではなく相対パスをプリントしたいのですが – Soccertrash
@Soccertrash、私は '<ファイルを置き換えてファイルを後処理することでこれを解決しました= "$ {sounds.txt}" token = "$ {basedir} \" value = "" /> '(私の場合は)共通のベースディレクトリ接頭辞を削除します。 – mgaert
@mgaertのように、 ' 'のようにインプレースで行うことができます。' –