Как мне удалить набор каталогов с помощью Ant?

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

  •  03-07-2019
  •  | 
  •  

Вопрос

Я хочу удалить все каталоги и подкаталоги в корневом каталоге, которые содержат "tmp" в своих именах.Это также должно включать любые файлы .svn.Мое первое предположение - использовать

<delete>
    <dirset dir="${root}">
          <include name="**/*tmp*" />
    </dirset>
</delete>

Похоже, это не работает, так как вы не можете вложить dirset в delete бирка.

Это правильный подход, или я должен делать что-то еще?

  • версия ant == 1.6.5.
  • версия java == 1.6.0_04
Это было полезно?

Решение

Вот ответ, который сработал для меня:

<delete includeemptydirs="true">
    <fileset dir="${root}" defaultexcludes="false">
       <include name="**/*tmp*/**" />
    </fileset>
</delete>

У меня было дополнительное осложнение, которое мне нужно было устранить .svn каталоги тоже.С defaultexcludes, .* файлы исключались, и поэтому пустые каталоги на самом деле не были пустыми и поэтому не удалялись.

Атрибут includeemptydirs (спасибо, flicken, XL-Plüschhase) позволяет завершить ** подстановочный знак, соответствующий пустой строке.

Другие советы

попробуй:

<delete includeemptydirs="true">
    <fileset dir="${root}">
          <include name="**/*tmp*/*" />
    </fileset>
</delete>

Спасибо тебе , фликен !

Я просто хотел добавить, что частью решения, которое сработало для меня, было добавление /** до конца включаемого пути.Я попробовал следующее, чтобы удалить каталоги Eclipse .settings:

<delete includeemptydirs="true">
    <fileset dir="${basedir}" includes"**/.settings">
</delete>

но это не сработало, пока я не изменил его на следующий:

<delete includeemptydirs="true">
    <fileset dir="${basedir}" includes"**/.settings/**">
</delete>

По какой-то причине добавление /** к пути удаляются файлы в соответствующем каталоге, все файлы во всех подкаталогах, подкаталоги и соответствующие каталоги.Добавление /* удаляет только файлы в соответствующем каталоге, но не удаляет соответствующий каталог.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top