Как мне скопировать каталог из одного места в другое, используя Ant? - PullRequest
5 голосов
/ 09 сентября 2010

Я хочу скопировать каталог из одного места в другое. Однако, глядя на «copy» и «copyDir» (что устарело), ​​кажется, что Ant по умолчанию копирует только содержимое одного расположения в другое, а не фактический каталог (и все, что в нем).

Итак, в качестве примера у меня есть следующее:

./Foo/test.txt

И я применяю следующий кусок муравья:

 <copy todir="./build">
    <fileset dir="./Foo"/>
 </copy>

Результат выглядит так:

./build/test.txt

В то время как я хотел бы, чтобы это было:

./build/Foo/test.txt

Надеюсь, это имеет смысл. Как я могу это сделать?

Ответы [ 2 ]

3 голосов
/ 24 ноября 2010

Что по этому поводу:

<copy todir="./build">
  <fileset dir=".">
    <include name="Foo/**"/> 
  </fileset>
</copy>
3 голосов
/ 09 сентября 2010

Чтобы сохранить структуру, вам нужно будет скопировать родительскую папку. В команде копирования есть опция flatten, но по умолчанию она имеет значение false. Вы также можете создать необходимую структуру каталогов, а затем скопировать на уровне файлов прямо в новую папку.

Вот соответствующая строка из ссылки :

Когда используется для выбора файлов для копирования, атрибут todir должен быть установлен. Файлы, которые находится под базовым каталогом будет скопирован в каталог под местом назначения каталог, соответствующий пути относительно базы каталог , если не расплющить атрибут имеет значение true.

Проблема заключается в том, что вы выбираете папку Foo, поэтому вы получаете только файлы в , вам нужно выбрать папку выше Foo, чтобы получить набор файлов, где ~ / Foo / file Структура .txt существует.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...