【问题标题】:create a fileset of all files matching a pattern, excluding files with a specific sibling file创建与模式匹配的所有文件的文件集,不包括具有特定同级文件的文件
【发布时间】:2011-08-22 21:32:13
【问题描述】:

我想创建一个与特定模式匹配的文件集,但从该集中排除在同一目录中具有特定其他文件的任何文件。

例如,我想要一个匹配所有 ./*/file.xml 文件的文件集,例如:

<fileset dir="${some.dir}" includes="*/file.xml" />

...但我想排除与 ignore.this 文件位于同一目录中的任何 file.xml 文件。

所以如果目录结构是:

foo/file.xml
bar/file.xml
bar/ignore.this

... foo 中的 file.xml 将被选中,但 bar 不会。

【问题讨论】:

    标签: ant build fileset


    【解决方案1】:

    您可以使用带有 present selector 的文件集和映射器:

    <fileset dir="${some.dir}" includes="*/file.xml">
        <present targetdir="${some.dir}" present="srconly">
            <mapper type="regexp" from="^(.*)/.*" to="\1/ignore.this" />
        </present>
    </fileset>
    

    也就是说,仅包含名为 file.xml 的文件,而在名为 ignore.this 的同一目录中没有相应的文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-26
      • 2021-08-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多