「ファイルセット」と「PathConvert」を使用してファイル名を2回エコーするにはどうすればよいですか?
質問
フォルダー内のすべての「.png 'ファイルをリストするこの単純なアリタスクがあります。
<target name="listimages">
<!-- Assume files a A and B -->
<fileset id="dist.contents" dir="${basedir}">
<include name="**/*.png"/>
</fileset>
<pathconvert pathsep="${line.separator}"
property="prop.dist.contents"
refid="dist.contents">
<mapper type="flatten" />
<map from="${basedir}" to=""/>
</pathconvert>
<echo>${prop.dist.contents}</echo>
</target>
これはプリントです
[echo] A.png
[echo] B.png
しかし、私が欲しいのは、ファイル名が表示されることです 2回 各行に。
[echo] A.png,A.png
[echo] B.png,B.png
どうやってやるの?
(この質問はフォローアップです ファイルセットをファイルに印刷するにはどうすればよいですか?)
解決
aを使用できます regexpマッパー (フラットンの代わりに)フラット化と複製を実装します。これは非常に単純ですが、そうかもしれません:
<mapper type="regexp" from=".*/(.*)" to="\1,\1" />
ローカルパスセパレーターを調整する必要があります。
より良いことに、フラットンの代わりにチェーンマッパーを使用してください。
<chainedmapper>
<mapper type="flatten" />
<mapper type="regexp" from="(.*)" to="\1,\1" />
</chainedmapper>
所属していません StackOverflow