如何仅在 Ant 中列出一级子目录?

发布于 2025-01-07 05:02:05 字数 183 浏览 0 评论 0原文

使用Ant,如何仅从第一级列出子文件夹,而不是沿着目录树向下列出?

假设我有:

dir1
-- dir21
----dir211
-- dir22

<dirset dir="dir1"/>

将列出所有目录,包括 dir211 。 我怎样才能避免这种情况?

Using Ant, how can I list sub folders only from the first level, and not going down the directory tree?

say I have:

dir1
-- dir21
----dir211
-- dir22

<dirset dir="dir1"/>

will list all dirs including dir211.
How can I avoid that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

挽手叙旧 2025-01-14 05:02:05

像这样使用dirset:

<dirset dir="dir" includes="*"/>

<dirset dir="dir1">
 <include name="*"/>
</dirset>

评论后编辑

包含属性嵌套包含名称应该是等效的,这里是一些
在我的 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

Use dirset like that :

<dirset dir="dir" includes="*"/>

or

<dirset dir="dir1">
 <include name="*"/>
</dirset>

EDIT after comment

includes attribute and nested include name should be equivalent, here's some
snippet working on my windows machine, given 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>

output :

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
素食主义者 2025-01-14 05:02:05

我想在我的目录中包含一个日期选择器,并且只选择根目录的子目录,这意味着我无法使用 includes="*"。我的解决方案是使用 <深度> 选择器

<dirset dir="/myroot" excludes="*/*/**">
   <date datetime="${cuttoff_time}"
         pattern="${timeformat}"
         when="before"
         checkdirs="true" />
   <depth max="1" />
</dirset>

I wanted to include a date selector in my dirset and only choose the sub directories of my root directory so that meant I couldn't use includes="*". My solution was to use the <depth> selector

<dirset dir="/myroot" excludes="*/*/**">
   <date datetime="${cuttoff_time}"
         pattern="${timeformat}"
         when="before"
         checkdirs="true" />
   <depth max="1" />
</dirset>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文