ファイルセットが既に作成されており、一致するファイル名をテキスト ファイルに出力する必要があります。
私はこれを試しました:
<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 行に 1 つのファイルが必要です。OS コマンドを呼び出したり Java コードを記述したりせずに、これを実行するにはどうすればよいですか?
アップデート:
ああ、もっと具体的にすべきだった。リストにはディレクトリが含まれていてはいけない。とにかく、ChssPly76の回答を承認された回答としてマークする。パス変換コマンドはまさに私が欠けていたものでした。ディレクトリを削除してファイル名だけをリストするには、「フラット化」マッパー。
最終的に作成したスクリプトは次のとおりです。
<fileset id="sounds_fileset" dir="../sound">
<include name="*.wav" />
<include name="*.ogg" />
</fileset>
<pathconvert pathsep="
" property="sounds" refid="sounds_fileset">
<mapper type="flatten" />
</pathconvert>
<echo file="sounds.txt">${sounds}</echo>
ベストアンサー1
使用パス変換タスク:
<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>