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

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

  •  23-10-2019
  •  | 
  •  

Вопрос

У меня есть эта простая задача 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

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

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

Это было полезно?

Решение

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

<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