Набор файлов Ant, соответствующий только файлам, но исключая все подкаталоги - PullRequest
0 голосов
/ 14 ноября 2018

Как скопировать только файлы непосредственно в каталог, а не в его подкаталоги? Я априори не знаю имен файлов или подкаталогов. Я пробовал следующее безрезультатно:

<include name="*">  # includes all files and subdirs
===
<include name="*">
<exclude name="*/**> # or "*/" or "**"

Любая помощь будет оценена.

UPDATE: В итоге я просто добавил задачу удаления, чтобы удалить скопированные подкаталоги:

<delete includeemptydirs="true">
    <fileset dir="${targetdir}">
        <type type="dir"/>
    </fileset>
</delete>

Ответы [ 2 ]

0 голосов
/ 04 декабря 2018

Один из способов сделать это - указать селектор <depth>, например:

<copy todir="dest">
    <fileset dir="src">
        <depth max="0" />
    </fileset>
</copy>

Это предотвратит копирование подкаталогов.

При необходимости вы можете комбинировать селекторы с правилами включения / исключения.

0 голосов
/ 18 ноября 2018
<?xml version="1.0" encoding="UTF-8"?>
<project default="copy-top-most-files-only" name="My Project">

    <property name="to.dir" value="/path/to/dest/folder/" />
    <property name="from.dir" value="/path/to/source/folder/" />

    <target name="copy-top-most-files-only">
        <copy todir="${to.dir}" includeEmptyDirs="false" >
            <fileset dir="${from.dir}">
                <exclude name="*/**/*" />
            </fileset>
        </copy>
    </target>
</project>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...