使用Ant,如何仅从第一级列出子文件夹,而不是在目录树下面?
说我有:
dir1
-- dir21
----dir211
-- dir22
<dirset dir="dir1"/>
将列出所有目录,包括dir211
。
我怎么能避免这种情况?
答案 0 :(得分:5)
使用这样的dirset:
<dirset dir="dir" includes="*"/>
或
<dirset dir="dir1">
<include name="*"/>
</dirset>
评论后编辑
includes attribute
和nested include name
应该是等价的,这里有一些
在我的Windows机器上工作的代码片段,给定C:\ foo \ bar:
<project>
<echo>
${ant.version}
${java.version}
${os.name}
</echo>
<dirset dir="c:/foo" includes="*" id="foobar" />
<echo>${toString:foobar}</echo>
<dirset dir="c:/foo" id="foobaz">
<include name="*" />
</dirset>
<echo>${toString:foobaz}</echo>
</project>
输出:
Buildfile: C:\rosebud\AntTest\tryme.xml
[echo] Apache Ant(TM) version 1.8.2 compiled on December 20 2010
[echo] 1.7.0_02
[echo] Windows 7
[echo]
[echo] bar
[echo] bar
BUILD SUCCESSFUL
答案 1 :(得分:0)
我想在我的dirset中包含一个日期选择器,只选择我的根目录的子目录,这意味着我无法使用includes="*"
。我的解决方案是使用<depth>
选择器
<dirset dir="/myroot" excludes="*/*/**">
<date datetime="${cuttoff_time}"
pattern="${timeformat}"
when="before"
checkdirs="true" />
<depth max="1" />
</dirset>