删除文件夹除外

sen*_*ior 6 ant

在src文件夹下我有以下文件夹:daos,business和model,我想用ant脚本删除,除了"model"之外的所有文件夹所以我试过:

    <delete includeemptydirs="true">
    <fileset dir="${basedir}/src">
    <include name="**/*"/>
    <exclude name="model/*"/>
    </fileset>
   </delete>
Run Code Online (Sandbox Code Playgroud)

所有文件夹都删除了excpet"model",这是空的!! 它的所有文件都被删除了!

Vir*_*oll 9

试试吧

<delete includeemptydirs="true">
    <fileset dir="${basedir}/src">
        <include name="**/*"/>
        <exclude name="**/model/**"/>
    </fileset>
</delete>
Run Code Online (Sandbox Code Playgroud)


pet*_*ica 7

对于未来的googlers:

什么对我有用:

<fileset dir="target">
    <include name="*/"/>
    <exclude name="big_and_complex_dir/"/>
</fileset>
Run Code Online (Sandbox Code Playgroud)

这删除了下面的所有内容(每个文件目录)target/,除了target/big_and_complex_dir.

我的目标是避免不必要的目录演练,如果" big_and_complex_dir"需要很长时间.

似乎ant的文件集解释具有非平凡的,非直观的行为,/如果我们打算进行递归子目录操作,我们需要关闭包含/排除路径.