Как я могу повторить имя файла дважды, используя «FileSet» и «PathConvert»?

У меня есть эта простая задача Ant, в которой перечислены все файлы '.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

Но я хочу, чтобы имена файлов появлялись дважды в каждой строке.

[echo] A.png,A.png
[echo] B.png,B.png

Как я могу это сделать?

(Этот вопрос является продолжением Как я могу напечатать набор файлов в файл, по одному имени файла в строке?)


person emeraldjava    schedule 02.06.2010    source источник


Ответы (1)


Вы можете использовать преобразователь регулярных выражений (вместо flatten), который реализует сглаживание и дублирование. Это довольно упрощенно, но может сделать:

<mapper type="regexp" from=".*/(.*)" to="\1,\1" />

Потребуется настройка для вашего локального разделителя пути.

Однако лучше использовать chainedmapper вместо flatten:

<chainedmapper>
    <mapper type="flatten" />
    <mapper type="regexp" from="(.*)" to="\1,\1" />
</chainedmapper>
person martin clayton    schedule 03.06.2010