「ファイルセット」と「PathConvert」を使用してファイル名を2回エコーするにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/2957314

  •  23-10-2019
  •  | 
  •  

質問

フォルダー内のすべての「.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>
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top