我有以下目录结构
- 根目录
- 固定目录
- 随机目录
- 子目录1
- 子目录2
- 子目录2.1
- 子目录3
- 子目录3.1
- 子目录3.2
在 ANT 构建文件中,我知道root_dir
、fixed_dir
和一个目录,它是( )random_dir
下面的子目录或子目录。我需要确定给定一些的路径。是否可以在 ANT 中找到该目录,如果可以,如何找到?random_dir
subdirX
random_dir
subdirX
我有以下目录结构
在 ANT 构建文件中,我知道root_dir
、fixed_dir
和一个目录,它是( )random_dir
下面的子目录或子目录。我需要确定给定一些的路径。是否可以在 ANT 中找到该目录,如果可以,如何找到?random_dir
subdirX
random_dir
subdirX
subdirX
这是一个经过测试的解决方案,用于在给定问题中提供的文件结构的情况下查找包含任何嵌套级别的 某些子目录的根目录的直接子目录。
<property name="root.dir" location="${basedir}/root_dir" />
<property name="subdirX" value="subdir2.1" />
<target name="find-immediate-subdir-of-root-containing-subdirX">
<dirset dir="${root.dir}" includes="**/${subdirX}" id="mydirset" />
<pathconvert property="random_dir" pathsep="${line.separator}" refid="mydirset">
<mapper type="regexp"
from="^(${root.dir}${file.separator}[^${file.separator}]+).*"
to="\1"/>
</pathconvert>
<echo message="${random_dir}" />
</target>
find-immediate-subdir-of-root-containing-subdirX:
[echo] /ant/project/basedir/root_dir/random_dir
BUILD SUCCESSFUL
Total time: 1 second
使用Ant 插件 Flaka,您将获得作为文件对象的属性的父级(参见Flaka 手册,第 3.7.2 节,即
<project xmlns:fl="antlib:it.haefelinger.flaka">
<!-- let standard ant tasks, i.e. echo
understand EL expresssions -->
<fl:install-property-handler />
<echo>#{file('${basedir}').parent}</echo>
<!-- or without fl:install-property-handler use fl:echo-->
<fl:echo>#{file('${basedir}').parent}</fl:echo>
</project>
所以你会使用:
#{file('${yoursubdir}').parent